021645b0 81ec08020000               sub esp, 0x208
021645b6 833d78235d0100             cmp dword ptr [0x15d2378], 0
021645bd 0f8523000000               jne 0x21645e6
021645c3 a1980f0901                 mov eax, dword ptr [0x1090f98]
021645c8 6804010000                 push 0x104
021645cd b970215d01                 mov ecx, 0x15d2170
021645d2 e879ab37fe                 call 0x4df150
021645d7 85c0                       test eax, eax
021645d9 0f8513000000               jne 0x21645f2
021645df 81c408020000               add esp, 0x208
021645e5 c3                         ret 
021645e6 b870215d01                 mov eax, 0x15d2170
021645eb 81c408020000               add esp, 0x208
021645f1 c3                         ret 
021645f2 6804010000                 push 0x104
021645f7 8d442404                   lea eax, [esp + 4]
021645fb 50                         push eax
021645fc 6870215d01                 push 0x15d2170
02164601 ff15a420ec00               call dword ptr [0xec20a4]
02164607 85c0                       test eax, eax
02164609 0f8e21000000               jle 0x2164630
0216460f 83c002                     add eax, 2
02164612 3d04010000                 cmp eax, 0x104
02164617 0f8d13000000               jge 0x2164630
0216461d 6804010000                 push 0x104
02164622 8d542404                   lea edx, [esp + 4]
02164626 b970215d01                 mov ecx, 0x15d2170
0216462b e850e9c2fe                 call 0xd92f80
02164630 6a00                       push 0
02164632 6870215d01                 push 0x15d2170
02164637 ff15a820ec00               call dword ptr [0xec20a8]
0216463d c70578235d0101000000       mov dword ptr [0x15d2378], 1
02164647 eb9d                       jmp 0x21645e6
02164649 0000                       add byte ptr [eax], al
0216464b 0000                       add byte ptr [eax], al
0216464d 0000                       add byte ptr [eax], al
0216464f 006a01                     add byte ptr [edx + 1], ch
02164652 6a1a                       push 0x1a
02164654 57                         push edi
02164655 6a00                       push 0
02164657 ff15b422ec00               call dword ptr [0xec22b4]
0216465d 85c0                       test eax, eax
0216465f 0f8503000000               jne 0x2164668
02164665 c20800                     ret 8
02164668 53                         push ebx
02164669 56                         push esi
0216466a 8b742410                   mov esi, dword ptr [esp + 0x10]
0216466e 56                         push esi
0216466f ba448b1202                 mov edx, 0x2128b44
02164674 89f9                       mov ecx, edi
02164676 e8d5efc2fe                 call 0xd93650
0216467b 33db                       xor ebx, ebx
0216467d 66391f                     cmp word ptr [edi], bx
02164680 0f840e000000               je 0x2164694
02164686 8bff                       mov edi, edi
02164688 43                         inc ebx
02164689 66833c5f00                 cmp word ptr [edi + ebx*2], 0
0216468e 0f85f4ffffff               jne 0x2164688
02164694 8d46ff                     lea eax, [esi - 1]
02164697 3bd8                       cmp ebx, eax
02164699 0f8d7a000000               jge 0x2164719
0216469f 55                         push ebp
021646a0 33ed                       xor ebp, ebp
021646a2 a1900f0901                 mov eax, dword ptr [0x1090f90]
021646a7 0fb7740500                 movzx esi, word ptr [ebp + eax]
021646ac 6685f6                     test si, si
021646af 0f845f000000               je 0x2164714
021646b5 83fe61                     cmp esi, 0x61
021646b8 0f8209000000               jb 0x21646c7
021646be 83fe7a                     cmp esi, 0x7a
021646c1 0f8638000000               jbe 0x21646ff
021646c7 83fe41                     cmp esi, 0x41
021646ca 0f8209000000               jb 0x21646d9
021646d0 83fe5a                     cmp esi, 0x5a
021646d3 0f8626000000               jbe 0x21646ff
021646d9 83fe30                     cmp esi, 0x30
021646dc 0f8209000000               jb 0x21646eb
021646e2 83fe39                     cmp esi, 0x39
021646e5 0f8614000000               jbe 0x21646ff
021646eb 8bd6                       mov edx, esi
021646ed b9c88f1202                 mov ecx, 0x2128fc8
021646f2 e8b9efc2fe                 call 0xd936b0
021646f7 85c0                       test eax, eax
021646f9 0f8405000000               je 0x2164704
021646ff 6689345f                   mov word ptr [edi + ebx*2], si
02164703 43                         inc ebx
02164704 8b442414                   mov eax, dword ptr [esp + 0x14]
02164708 48                         dec eax
02164709 83c502                     add ebp, 2
0216470c 3bd8                       cmp ebx, eax
0216470e 0f8c8effffff               jl 0x21646a2
02164714 8b742414                   mov esi, dword ptr [esp + 0x14]
02164718 5d                         pop ebp
02164719 33c9                       xor ecx, ecx
0216471b 66890c5f                   mov word ptr [edi + ebx*2], cx
0216471f 56                         push esi
02164720 ba5c8b1202                 mov edx, 0x2128b5c
02164725 8bcf                       mov ecx, edi
02164727 e824efc2fe                 call 0xd93650
0216472c 8b54240c                   mov edx, dword ptr [esp + 0xc]
02164730 56                         push esi
02164731 89f9                       mov ecx, edi
02164733 e818efc2fe                 call 0xd93650
02164738 56                         push esi
02164739 ba5c8b1202                 mov edx, 0x2128b5c
0216473e 8bcf                       mov ecx, edi
02164740 e80befc2fe                 call 0xd93650
02164745 89f9                       mov ecx, edi
02164747 e8b4e7c2fe                 call 0xd92f00
0216474c 40                         inc eax
0216474d 33d2                       xor edx, edx
0216474f 3bc6                       cmp eax, esi
02164751 0f9cc2                     setl dl
02164754 5e                         pop esi
02164755 5b                         pop ebx
02164756 89d0                       mov eax, edx
02164758 c20800                     ret 8
0216475b 0000                       add byte ptr [eax], al
0216475d 0000                       add byte ptr [eax], al
0216475f 005356                     add byte ptr [ebx + 0x56], dl
02164762 57                         push edi
02164763 89d7                       mov edi, edx
02164765 89ce                       mov esi, ecx
02164767 85ff                       test edi, edi
02164769 0f8407000000               je 0x2164776
0216476f 8bcf                       mov ecx, edi
02164771 e80a5a2cfe                 call 0x42a180
02164776 8bb618900200               mov esi, dword ptr [esi + 0x29018]
0216477c 8b5c2418                   mov ebx, dword ptr [esp + 0x18]
02164780 89f1                       mov ecx, esi
02164782 e8d96a37fe                 call 0x4db260
02164787 85db                       test ebx, ebx
02164789 0f8559000000               jne 0x21647e8
0216478f 85c0                       test eax, eax
02164791 0f84a0000000               je 0x2164837
02164797 8b4c2434                   mov ecx, dword ptr [esp + 0x34]
0216479b 8b542430                   mov edx, dword ptr [esp + 0x30]
0216479f 51                         push ecx
021647a0 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
021647a4 52                         push edx
021647a5 8b542430                   mov edx, dword ptr [esp + 0x30]
021647a9 51                         push ecx
021647aa 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
021647ae 52                         push edx
021647af 8b542430                   mov edx, dword ptr [esp + 0x30]
021647b3 51                         push ecx
021647b4 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
021647b8 6840b14d00                 push 0x4db140
021647bd 52                         push edx
021647be 8b542430                   mov edx, dword ptr [esp + 0x30]
021647c2 51                         push ecx
021647c3 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
021647c7 6870370e02                 push 0x20e3770
021647cc 6860370e02                 push 0x20e3760
021647d1 52                         push edx
021647d2 51                         push ecx
021647d3 57                         push edi
021647d4 6860370e02                 push 0x20e3760
021647d9 8bd0                       mov edx, eax
021647db 89f1                       mov ecx, esi
021647dd e8cee3c7fe                 call 0xde2bb0
021647e2 5f                         pop edi
021647e3 5e                         pop esi
021647e4 5b                         pop ebx
021647e5 c22800                     ret 0x28
021647e8 85c0                       test eax, eax
021647ea 0f8447000000               je 0x2164837
021647f0 8b542434                   mov edx, dword ptr [esp + 0x34]
021647f4 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
021647f8 52                         push edx
021647f9 8b542430                   mov edx, dword ptr [esp + 0x30]
021647fd 51                         push ecx
021647fe 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
02164802 52                         push edx
02164803 8b542430                   mov edx, dword ptr [esp + 0x30]
02164807 51                         push ecx
02164808 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
0216480c 52                         push edx
0216480d 8b542430                   mov edx, dword ptr [esp + 0x30]
02164811 6840b14d00                 push 0x4db140
02164816 51                         push ecx
02164817 8b4c2430                   mov ecx, dword ptr [esp + 0x30]
0216481b 52                         push edx
0216481c 8b542430                   mov edx, dword ptr [esp + 0x30]
02164820 6870370e02                 push 0x20e3770
02164825 6860370e02                 push 0x20e3760
0216482a 51                         push ecx
0216482b 52                         push edx
0216482c 57                         push edi
0216482d 53                         push ebx
0216482e 89c2                       mov edx, eax
02164830 8bce                       mov ecx, esi
02164832 e859e4c7fe                 call 0xde2c90
02164837 5f                         pop edi
02164838 5e                         pop esi
02164839 5b                         pop ebx
0216483a c22800                     ret 0x28
0216483d 0000                       add byte ptr [eax], al
0216483f 00568b                     add byte ptr [esi - 0x75], dl
02164842 f1                         int1 
02164843 57                         push edi
02164844 33c9                       xor ecx, ecx
02164846 e845f394fe                 call 0xab3b90
0216484b 8b4e1c                     mov ecx, dword ptr [esi + 0x1c]
0216484e 894808                     mov dword ptr [eax + 8], ecx
02164851 89ca                       mov edx, ecx
02164853 8d7e14                     lea edi, [esi + 0x14]
02164856 897804                     mov dword ptr [eax + 4], edi
02164859 894204                     mov dword ptr [edx + 4], eax
0216485c 8b4804                     mov ecx, dword ptr [eax + 4]
0216485f 894108                     mov dword ptr [ecx + 8], eax
02164862 b901000000                 mov ecx, 1
02164867 e824f394fe                 call 0xab3b90
0216486c 8b561c                     mov edx, dword ptr [esi + 0x1c]
0216486f 8bca                       mov ecx, edx
02164871 895008                     mov dword ptr [eax + 8], edx
02164874 897804                     mov dword ptr [eax + 4], edi
02164877 894104                     mov dword ptr [ecx + 4], eax
0216487a 8b5004                     mov edx, dword ptr [eax + 4]
0216487d b902000000                 mov ecx, 2
02164882 894208                     mov dword ptr [edx + 8], eax
02164885 e806f394fe                 call 0xab3b90
0216488a 8b4e1c                     mov ecx, dword ptr [esi + 0x1c]
0216488d 894808                     mov dword ptr [eax + 8], ecx
02164890 8bd1                       mov edx, ecx
02164892 897804                     mov dword ptr [eax + 4], edi
02164895 894204                     mov dword ptr [edx + 4], eax
02164898 8b4804                     mov ecx, dword ptr [eax + 4]
0216489b 894108                     mov dword ptr [ecx + 8], eax
0216489e b903000000                 mov ecx, 3
021648a3 e8e8f294fe                 call 0xab3b90
021648a8 8b561c                     mov edx, dword ptr [esi + 0x1c]
021648ab 8bca                       mov ecx, edx
021648ad 895008                     mov dword ptr [eax + 8], edx
021648b0 897804                     mov dword ptr [eax + 4], edi
021648b3 894104                     mov dword ptr [ecx + 4], eax
021648b6 8b5004                     mov edx, dword ptr [eax + 4]
021648b9 b904000000                 mov ecx, 4
021648be 894208                     mov dword ptr [edx + 8], eax
021648c1 e8caf294fe                 call 0xab3b90
021648c6 8b4e1c                     mov ecx, dword ptr [esi + 0x1c]
021648c9 894808                     mov dword ptr [eax + 8], ecx
021648cc 8bd1                       mov edx, ecx
021648ce 897804                     mov dword ptr [eax + 4], edi
021648d1 894204                     mov dword ptr [edx + 4], eax
021648d4 8b4804                     mov ecx, dword ptr [eax + 4]
021648d7 894108                     mov dword ptr [ecx + 8], eax
021648da b905000000                 mov ecx, 5
021648df e8acf294fe                 call 0xab3b90
021648e4 8b561c                     mov edx, dword ptr [esi + 0x1c]
021648e7 89d1                       mov ecx, edx
021648e9 895008                     mov dword ptr [eax + 8], edx
021648ec 897804                     mov dword ptr [eax + 4], edi
021648ef 894104                     mov dword ptr [ecx + 4], eax
021648f2 8b5004                     mov edx, dword ptr [eax + 4]
021648f5 b906000000                 mov ecx, 6
021648fa 894208                     mov dword ptr [edx + 8], eax