Function at 0x4375db
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x70]
sub esp, 0xf8c
push ebx
xor ebx, ebx
mov dword [ebp + 0x10], ecx
cmp byte [ecx], bl
je 0x4375fa
xor al, al
pop ebx
add ebp, 0x70
leave
ret 8
push esi
xor cl, cl
call fcn.0042db1e
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x1c], eax
call fcn.004b982d
mov edx, eax
lea ecx, [ebp + 0xc]
call fcn.004a164d
lea ecx, [ebp + 0x64]
call fcn.004a0c7d
lea ecx, [ebp + 0x64]
call fcn.004b981e
mov edx, eax
lea ecx, [ebp + 8]
call fcn.004a164d
lea ecx, [ebp + 0x64]
call fcn.004a0c7d
push 5
pop edx
lea ecx, [ebp - 0x24]
call fcn.004364e2
mov dword [ebp + 0x50], ebx
call fcn.0047cfd9
call fcn.0047297c
mov byte [ebp + 0x6f], al
call fcn.0047cff8
push 3
pop esi
cmp byte [ebp + 0x6f], bl
je 0x43767c
mov dword [ebp + 0x50], 1
call fcn.0046a110
test al, al
je 0x437679
cmp byte [0x56b620], bl
je 0x43767c
mov dword [ebp + 0x50], esi
push edi
mov ecx, 0x51637c
call fcn.0042897a
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
lea ecx, [ebp + 0x64]
mov dword [ebp - 0xc], eax
call fcn.00435936
mov ecx, eax
call fcn.004a0e99
push eax
push 0x50fa40
lea eax, [ebp - 0xf1c]
push 0x7ff
push eax
call fcn.0049f8ba
add esp, 0x10
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x68], eax
call fcn.004a0c7d
lea ecx, [ebp - 0x69c]
call fcn.004fd876
push dword [0x890440]
xor eax, eax
push dword [0x89043c]
lea edi, [ebp - 0x71c]
push dword [0x890438]
stosb byte es:[edi], al
push dword [0x890434]
lea eax, [ebp - 0x71c]
push dword [0x890430]
push 0x516d2c
push 0x80
push eax
call fcn.0049f8ba
mov esi, dword [ebp + 0x78]
xor eax, eax
mov dword [ebp - 0xa8], 0x516374
mov dword [ebp - 0xa4], 0x512b50
lea edi, [ebp - 0xa0]
stosd dword es:[edi], eax
mov eax, dword [0x55a034]
mov dword [ebp - 0x98], eax
xor eax, eax
mov dword [ebp - 0x9c], 0x51636c
lea edi, [ebp - 0x94]
stosd dword es:[edi], eax
mov eax, dword [esi + 0x34]
mov dword [ebp - 0x8c], eax
xor eax, eax
mov dword [ebp - 0x90], 0x516364
lea edi, [ebp - 0x88]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x7c]
mov dword [ebp - 0x80], eax
xor eax, eax
mov dword [ebp - 0x84], 0x516d24
lea edi, [ebp - 0x7c]
stosd dword es:[edi], eax
add esp, 0x20
lea ecx, [ebp + 8]
mov dword [ebp - 0x78], 0x51635c
call fcn.004a0e99
mov dword [ebp - 0x74], eax
xor eax, eax
lea edi, [ebp - 0x70]
stosd dword es:[edi], eax
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x6c], 0x516354
cmp eax, ebx
je 0x4377af
cmp byte [eax], bl
mov dword [ebp - 0x68], eax
jne 0x4377b2
mov dword [ebp - 0x68], ebx
xor eax, eax
lea edi, [ebp - 0x64]
stosd dword es:[edi], eax
mov eax, dword [0x5545f8]
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0x60], 0x51634c
lea edi, [ebp - 0x58]
stosd dword es:[edi], eax
mov dword [ebp - 0x54], 0x51633c
mov dword [ebp - 0x50], 0x7021
lea edi, [ebp - 0x4c]
stosd dword es:[edi], eax
mov dword [ebp - 0x48], 0x516334
mov dword [ebp - 0x44], 0x51632c
lea edi, [ebp - 0x40]
stosd dword es:[edi], eax
lea eax, [ebp - 0x71c]
mov dword [ebp - 0x38], eax
xor eax, eax
push 1
mov dword [ebp - 0x3c], 0x516d1c
lea edi, [ebp - 0x34]
stosd dword es:[edi], eax
push 0xa
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp + 0x68]
mov edx, 0x800
sub edx, eax
lea ecx, [ebp + eax - 0xf1c]
call fcn.0044be49
add dword [ebp + 0x68], eax
lea eax, [ebp - 0x24]
push eax
push dword [esi + 0x38]
mov eax, 0x800
push dword [0x895320]
sub eax, dword [ebp + 0x68]
push 0x516d0c
push eax
mov eax, dword [ebp + 0x68]
lea eax, [ebp + eax - 0xf1c]
push eax
call fcn.0049f8ba
add dword [ebp + 0x68], eax
add esp, 0x18
cmp byte [0x88f927], bl
je 0x438bb3
lea eax, [ebp + 0x40]
mov edi, 0x88ddec
push eax
mov ecx, edi
call fcn.00409044
mov ecx, dword [ebp + 0x40]
call fcn.00408283
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x40]
push eax
mov ecx, edi
call fcn.00409044
mov ecx, dword [ebp + 0x40]
call fcn.00408d93
xor edi, edi
mov dword [ebp - 8], eax
mov dword [ebp + 0x38], ebx
cmp dword [0x88de1c], ebx
jbe 0x4378ce
xor esi, esi
mov eax, dword [0x88de14]
lea ecx, [eax + esi]
push 0x512e2c
call fcn.00426d82
cmp eax, 1
jne 0x4378c2
inc dword [ebp + 0x38]
inc edi
add esi, 0x1c
cmp edi, dword [0x88de1c]
jb 0x4378a8
push 0x14
lea eax, [ebp - 0x670]
push eax
push 0x516cfc
mov edx, 0x516cb0
mov ecx, 0x80000002
call fcn.0044f8a9
test al, al
jne 0x4378f8
xor eax, eax
mov word [ebp - 0x670], ax
mov eax, dword [0x89030c]
mov dword [ebp + 0x30], eax
cmp byte [0x88f9a0], bl
jne 0x43790f
or dword [ebp + 0x30], 0x80
lea ecx, [ebp + 0x64]
call fcn.004bd1e8
call fcn.004b859b
sub eax, dword [0x88dc80]
sbb edx, dword [0x88dc84]
mov edi, eax
mov dword [ebp + 0x60], edx
call fcn.004b6d1c
mov eax, dword [0x890310]
add eax, edi
mov dword [ebp - 0x10], eax
call fcn.0042e334
lea ecx, [ebp + 0x54]
mov dword [ebp - 0x18], eax
call fcn.004a0e93
lea ecx, [ebp + 0x58]
call fcn.004a0e93
lea eax, [ebp + 0x14]
mov esi, 0x89034c
push eax
mov ecx, esi
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x48], ebx
call fcn.00448d5b
mov edi, 0x890350
jmp 0x4379c6
lea eax, [ebp + 0x20]
push eax
mov ecx, esi
call fcn.00448d5b
push eax
lea ecx, [ebp + 0x14]
call fcn.004a0e33
test al, al
je 0x437999
push 0x510478
lea ecx, [ebp + 0x44]
call fcn.004a0288
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x18]
add ecx, 0x14
call fcn.004a0e99
push eax
lea eax, [ebp + 0x44]
push 0x516ca4
push eax
call fcn.004a03fc
add esp, 0x10
push ebx
lea eax, [ebp + 0x3c]
push eax
lea ecx, [ebp + 0x14]
call fcn.004a0e09
push ebx
push edi
lea ecx, [ebp + 0x5c]
call fcn.004a0d87
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp + 0x14]
call fcn.004a0e33
test al, al
jne 0x437974
lea ecx, [ebp + 0x44]
call fcn.004a0466
push eax
lea ecx, [ebp + 0x54]
call fcn.004a0eb9
lea ecx, [ebp + 0x44]
call fcn.004a0bd2
lea eax, [ebp + 0x5c]
mov edi, 0x89036c
push eax
mov ecx, edi
mov dword [ebp + 0x44], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x48], ebx
call fcn.00448d5b
mov esi, 0x890370
jmp 0x437a6b
lea eax, [ebp + 0x3c]
push eax
mov ecx, edi
call fcn.00448d5b
push eax
lea ecx, [ebp + 0x5c]
call fcn.004a0e33
test al, al
je 0x437a3e
push 0x510478
lea ecx, [ebp + 0x44]
call fcn.004a0288
mov ecx, dword [ebp + 0x5c]
push dword [ecx + 0x18]
add ecx, 0x14
call fcn.004a0e99
push eax
lea eax, [ebp + 0x44]
push 0x516ca4
push eax
call fcn.004a03fc
add esp, 0x10
push ebx
lea eax, [ebp + 0x28]
push eax
lea ecx, [ebp + 0x5c]
call fcn.004a0e09
push ebx
push esi
lea ecx, [ebp + 0x20]
call fcn.004a0d87
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x5c]
call fcn.004a0e33
test al, al
jne 0x437a19
lea ecx, [ebp + 0x44]
call fcn.004a0466
push eax
lea ecx, [ebp + 0x58]
call fcn.004a0eb9
lea ecx, [ebp + 0x44]
call fcn.004a0bd2
mov dword [ebp + 0x2c], 1
cmp byte [0x88f995], bl
jmp 0x437ab4
call fcn.004afcd4
cmp eax, 6
je 0x437ac2
or dword [ebp + 0x2c], 4
call fcn.004afd98
test al, al
je 0x437acf
or dword [ebp + 0x2c], 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x40], ebx
mov dword [ebp - 4], ebx
mov dword [ebp + 4], ebx
mov dword [ebp], ebx
call fcn.00453d98
mov esi, eax
cmp esi, ebx
je 0x437b32
mov eax, dword [esi + 8]
mov dword [ebp + 0x40], eax
xor edi, edi
mov eax, dword [esi + 8]
cmp eax, 5
jbe 0x437b02
push 5
pop eax
cmp edi, eax
jae 0x437b24
cmp edi, ebx
jbe 0x437b14
push 0x2c
lea ecx, [ebp - 4]
call fcn.004a02bf
mov eax, dword [esi]
push dword [eax + edi*4]
lea ecx, [ebp - 4]
call fcn.004a02d0
inc edi
jmp 0x437af7
mov ecx, esi
call fcn.0043d153
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
xor cl, cl
call fcn.0046b273
cmp al, byte [0x890400]
setne byte [ebp + 0x6f]
cmp byte [ebp + 0x6f], bl
je 0x437b54
xor cl, cl
call fcn.0046b273
mov byte [0x890400], al
cmp dword [0x890314], 4
jbe 0x437b93
movzx eax, byte [ebp + 0x6f]
mov ecx, dword [ebp + 0x68]
mov dword [ebp - 0x2c], eax
xor eax, eax
push 4
mov dword [ebp - 0x30], 0x516c90
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
push 1
lea eax, [ebp - 0x30]
mov edx, 0x800
sub edx, dword [ebp + 0x68]
push eax
lea ecx, [ebp + ecx - 0xf1c]
call fcn.0044be49
add dword [ebp + 0x68], eax
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x5b8], 0x516324
call fcn.004a0e99
mov dword [ebp - 0x5b4], eax
xor eax, eax
lea edi, [ebp - 0x5b0]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x5a8], eax
xor eax, eax
mov dword [ebp - 0x5ac], 0x51631c
lea edi, [ebp - 0x5a4]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x50]
mov dword [ebp - 0x59c], eax
xor eax, eax
mov dword [ebp - 0x5a0], 0x516c88
lea edi, [ebp - 0x598]
stosd dword es:[edi], eax
lea ecx, [ebp + 0x1c]
mov dword [ebp - 0x594], 0x516314
call fcn.004a0e99
mov dword [ebp - 0x590], eax
xor eax, eax
lea edi, [ebp - 0x58c]
stosd dword es:[edi], eax
mov eax, dword [0x88f8c8]
mov dword [ebp - 0x584], eax
xor eax, eax
mov dword [ebp - 0x588], 0x516c80
lea edi, [ebp - 0x580]
stosd dword es:[edi], eax
mov eax, dword [0x88f8c4]
mov dword [ebp - 0x578], eax
xor eax, eax
mov dword [ebp - 0x57c], 0x516c74
lea edi, [ebp - 0x574]
stosd dword es:[edi], eax
mov eax, dword [0x88dd24]
mov dword [ebp - 0x56c], eax
xor eax, eax
mov dword [ebp - 0x570], 0x516c68
lea edi, [ebp - 0x568]
stosd dword es:[edi], eax
mov eax, dword [0x55986c]
mov dword [ebp - 0x560], eax
xor eax, eax
mov dword [ebp - 0x564], 0x516c60
lea edi, [ebp - 0x55c]
stosd dword es:[edi], eax
movzx eax, byte [0x56b7e8]
mov dword [ebp - 0x554], eax
xor eax, eax
mov dword [ebp - 0x558], 0x516c58
lea edi, [ebp - 0x550]
stosd dword es:[edi], eax
movzx eax, byte [0x56b858]
mov dword [ebp - 0x548], eax
xor eax, eax
mov dword [ebp - 0x54c], 0x516c50
lea edi, [ebp - 0x544]
stosd dword es:[edi], eax
movzx eax, byte [0x56b859]
mov dword [ebp - 0x53c], eax
xor eax, eax
mov dword [ebp - 0x540], 0x516c48
lea edi, [ebp - 0x538]
stosd dword es:[edi], eax
movzx eax, byte [0x56b85a]
mov dword [ebp - 0x530], eax
xor eax, eax
mov dword [ebp - 0x534], 0x516c40
lea edi, [ebp - 0x52c]
stosd dword es:[edi], eax
mov eax, dword [0x56b850]
mov dword [ebp - 0x524], eax
xor eax, eax
lea edi, [ebp - 0x520]
mov dword [ebp - 0x528], 0x516c38
stosd dword es:[edi], eax
mov dword [ebp - 0x51c], 0x516c2c
mov eax, dword [0x56b854]
mov dword [ebp - 0x518], eax
xor eax, eax
lea edi, [ebp - 0x514]
stosd dword es:[edi], eax
mov eax, dword [0x88d718]
mov dword [ebp - 0x50c], eax
xor eax, eax
mov dword [ebp - 0x510], 0x516c24
lea edi, [ebp - 0x508]
stosd dword es:[edi], eax
mov eax, dword [0x88d730]
mov dword [ebp - 0x500], eax
xor eax, eax
mov dword [ebp - 0x504], 0x516c1c
lea edi, [ebp - 0x4fc]
stosd dword es:[edi], eax
movzx eax, word [0x56a608]
mov dword [ebp - 0x4f4], eax
xor eax, eax
mov dword [ebp - 0x4f8], 0x516c10
lea edi, [ebp - 0x4f0]
stosd dword es:[edi], eax
movzx eax, word [0x56a60a]
mov dword [ebp - 0x4e8], eax
xor eax, eax
mov dword [ebp - 0x4ec], 0x516c04
lea edi, [ebp - 0x4e4]
stosd dword es:[edi], eax
movzx eax, word [0x56a60e]
mov dword [ebp - 0x4dc], eax
xor eax, eax
mov dword [ebp - 0x4e0], 0x516bf8
lea edi, [ebp - 0x4d8]
stosd dword es:[edi], eax
movzx eax, word [0x56a610]
mov dword [ebp - 0x4d0], eax
xor eax, eax
mov dword [ebp - 0x4d4], 0x516bec
lea edi, [ebp - 0x4cc]
stosd dword es:[edi], eax
movzx eax, word [0x56a612]
mov dword [ebp - 0x4c4], eax
xor eax, eax
mov dword [ebp - 0x4c8], 0x516be0
lea edi, [ebp - 0x4c0]
stosd dword es:[edi], eax
movzx eax, word [0x56a61a]
mov dword [ebp - 0x4b8], eax
xor eax, eax
mov dword [ebp - 0x4bc], 0x516bd4
lea edi, [ebp - 0x4b4]
stosd dword es:[edi], eax
mov eax, dword [0x89020c]
mov dword [ebp - 0x4ac], eax
xor eax, eax
mov dword [ebp - 0x4b0], 0x516bcc
lea edi, [ebp - 0x4a8]
stosd dword es:[edi], eax
mov eax, dword [0x89021c]
mov dword [ebp - 0x4a0], eax
xor eax, eax
mov dword [ebp - 0x4a4], 0x516bc4
lea edi, [ebp - 0x49c]
stosd dword es:[edi], eax
mov eax, dword [0x890220]
mov dword [ebp - 0x494], eax
xor eax, eax
mov dword [ebp - 0x498], 0x516bb8
lea edi, [ebp - 0x490]
stosd dword es:[edi], eax
mov eax, dword [0x890210]
mov dword [ebp - 0x488], eax
xor eax, eax
lea edi, [ebp - 0x484]
mov dword [ebp - 0x48c], 0x516bb0
stosd dword es:[edi], eax
mov eax, dword [0x890214]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x480], 0x516ba8
xor eax, eax
lea edi, [ebp - 0x478]
stosd dword es:[edi], eax
mov eax, dword [0x890218]
mov dword [ebp - 0x470], eax
xor eax, eax
mov dword [ebp - 0x474], 0x516ba0
lea edi, [ebp - 0x46c]
stosd dword es:[edi], eax
mov eax, dword [0x890224]
mov dword [ebp - 0x464], eax
xor eax, eax
mov dword [ebp - 0x468], 0x516b98
lea edi, [ebp - 0x460]
stosd dword es:[edi], eax
mov eax, dword [0x890228]
mov dword [ebp - 0x458], eax
xor eax, eax
mov dword [ebp - 0x45c], 0x516b90
lea edi, [ebp - 0x454]
stosd dword es:[edi], eax
mov eax, dword [0x890234]
mov dword [ebp - 0x44c], eax
xor eax, eax
mov dword [ebp - 0x450], 0x516b88
lea edi, [ebp - 0x448]
stosd dword es:[edi], eax
mov eax, dword [0x890238]
mov dword [ebp - 0x440], eax
xor eax, eax
mov dword [ebp - 0x444], 0x516b80
lea edi, [ebp - 0x43c]
stosd dword es:[edi], eax
mov eax, dword [0x89023c]
mov dword [ebp - 0x434], eax
xor eax, eax
mov dword [ebp - 0x438], 0x516b78
lea edi, [ebp - 0x430]
stosd dword es:[edi], eax
mov eax, dword [0x890240]
mov dword [ebp - 0x428], eax
xor eax, eax
mov dword [ebp - 0x42c], 0x516b70
lea edi, [ebp - 0x424]
stosd dword es:[edi], eax
mov eax, dword [0x890244]
mov dword [ebp - 0x41c], eax
xor eax, eax
mov dword [ebp - 0x420], 0x516b68
lea edi, [ebp - 0x418]
stosd dword es:[edi], eax
mov eax, dword [0x890248]
mov dword [ebp - 0x410], eax
xor eax, eax
mov dword [ebp - 0x414], 0x516b60
lea edi, [ebp - 0x40c]
stosd dword es:[edi], eax
mov eax, dword [0x89024c]
mov dword [ebp - 0x404], eax
xor eax, eax
mov dword [ebp - 0x408], 0x516b58
lea edi, [ebp - 0x400]
stosd dword es:[edi], eax
mov eax, dword [0x890250]
mov dword [ebp - 0x3f8], eax
xor eax, eax
mov dword [ebp - 0x3fc], 0x516b50
lea edi, [ebp - 0x3f4]
stosd dword es:[edi], eax
movzx eax, byte [0x88f98a]
add eax, eax
push 3
pop ecx
sub ecx, eax
movzx eax, byte [0x88f987]
sub ecx, eax
xor eax, eax
lea edi, [ebp - 0x3e8]
mov dword [ebp - 0x3f0], 0x516b48
mov dword [ebp - 0x3ec], ecx
stosd dword es:[edi], eax
mov dword [ebp - 0x3e4], 0x516b40
mov eax, dword [0x890254]
mov dword [ebp - 0x3e0], eax
xor eax, eax
lea edi, [ebp - 0x3dc]
stosd dword es:[edi], eax
mov eax, dword [0x890258]
mov dword [ebp - 0x3d4], eax
xor eax, eax
mov dword [ebp - 0x3d8], 0x516b38
lea edi, [ebp - 0x3d0]
stosd dword es:[edi], eax
movzx eax, byte [0x88f978]
mov dword [ebp - 0x3c8], eax
xor eax, eax
mov dword [ebp - 0x3cc], 0x516b30
lea edi, [ebp - 0x3c4]
stosd dword es:[edi], eax
mov dword [ebp - 0x3c0], 0x516b20
call fcn.004cba70
movzx eax, al
mov dword [ebp - 0x3bc], eax
xor eax, eax
cmp word [0x88e140], bx
lea edi, [ebp - 0x3b8]
stosd dword es:[edi], eax
setne al
mov dword [ebp - 0x3b4], 0x516b18
lea edi, [ebp - 0x3ac]
mov dword [ebp - 0x3b0], eax
xor eax, eax
stosd dword es:[edi], eax
cmp word [0x56c13c], bx
mov dword [ebp - 0x3a8], 0x516b10
setne al
lea edi, [ebp - 0x3a0]
mov dword [ebp - 0x3a4], eax
xor eax, eax
stosd dword es:[edi], eax
mov eax, dword [0x88dd10]
mov dword [ebp - 0x398], eax
xor eax, eax
mov dword [ebp - 0x39c], 0x516b08
lea edi, [ebp - 0x394]
stosd dword es:[edi], eax
mov eax, dword [0x88dd14]
mov dword [ebp - 0x38c], eax
xor eax, eax
mov dword [ebp - 0x390], 0x516b00
lea edi, [ebp - 0x388]
stosd dword es:[edi], eax
mov eax, dword [0x88dd18]
mov dword [ebp - 0x380], eax
xor eax, eax
mov dword [ebp - 0x384], 0x516af8
lea edi, [ebp - 0x37c]
stosd dword es:[edi], eax
mov eax, dword [0x88dd04]
mov dword [ebp - 0x374], eax
xor eax, eax
mov dword [ebp - 0x378], 0x516af0
lea edi, [ebp - 0x370]
stosd dword es:[edi], eax
mov eax, dword [0x88dd08]
mov dword [ebp - 0x368], eax
xor eax, eax
mov dword [ebp - 0x36c], 0x516ae8
lea edi, [ebp - 0x364]
stosd dword es:[edi], eax
mov eax, dword [0x88dd0c]
mov dword [ebp - 0x35c], eax
xor eax, eax
mov dword [ebp - 0x360], 0x516ae0
lea edi, [ebp - 0x358]
stosd dword es:[edi], eax
mov eax, dword [0x88dd1c]
mov dword [ebp - 0x350], eax
xor eax, eax
lea edi, [ebp - 0x34c]
mov dword [ebp - 0x354], 0x516ad8
stosd dword es:[edi], eax
mov dword [ebp - 0x348], 0x516ad0
mov eax, dword [0x88dd20]
mov dword [ebp - 0x344], eax
xor eax, eax
lea edi, [ebp - 0x340]
stosd dword es:[edi], eax
mov eax, dword [0x88dcf8]
mov dword [ebp - 0x338], eax
xor eax, eax
mov dword [ebp - 0x33c], 0x516ac8
lea edi, [ebp - 0x334]
stosd dword es:[edi], eax
mov eax, dword [0x88dcfc]
mov dword [ebp - 0x32c], eax
xor eax, eax
mov dword [ebp - 0x330], 0x516ac0
lea edi, [ebp - 0x328]
stosd dword es:[edi], eax
mov eax, dword [0x88dd00]
mov dword [ebp - 0x320], eax
xor eax, eax
mov dword [ebp - 0x324], 0x516ab8
lea edi, [ebp - 0x31c]
stosd dword es:[edi], eax
mov eax, dword [0x88ce0c]
mov dword [ebp - 0x314], eax
xor eax, eax
mov dword [ebp - 0x318], 0x516ab0
lea edi, [ebp - 0x310]
stosd dword es:[edi], eax
mov eax, dword [0x88ce18]
mov dword [ebp - 0x308], eax
xor eax, eax
lea edi, [ebp - 0x304]
mov dword [ebp - 0x30c], 0x516aa8
stosd dword es:[edi], eax
mov eax, dword [0x88ce48]
lea ecx, [eax - 1]
mov dword [ebp - 0x300], 0x516aa0
cmp ecx, 3
ja 0x4382bc
mov eax, dword [eax*4 + 0x554600]
mov dword [ebp - 0x2fc], eax
jmp 0x4382c2
mov dword [ebp - 0x2fc], ebx
xor eax, eax
lea edi, [ebp - 0x2f8]
stosd dword es:[edi], eax
movzx eax, word [0x56a616]
mov dword [ebp - 0x2f0], eax
xor eax, eax
cmp byte [0x88f904], bl
mov dword [ebp - 0x2f4], 0x516a94
lea edi, [ebp - 0x2ec]
stosd dword es:[edi], eax
setne al
mov dword [ebp - 0x2e8], 0x516a8c
lea edi, [ebp - 0x2e0]
mov dword [ebp - 0x2e4], eax
xor eax, eax
cmp byte [0x88f98a], bl
stosd dword es:[edi], eax
setne al
mov dword [ebp - 0x2dc], 0x516a84
lea edi, [ebp - 0x2d4]
mov dword [ebp - 0x2d8], eax
xor eax, eax
cmp byte [0x88f987], bl
stosd dword es:[edi], eax
setne al
lea edi, [ebp - 0x2c8]
mov dword [ebp - 0x2d0], 0x516a7c
mov dword [ebp - 0x2cc], eax
xor eax, eax
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c4], 0x516a74
cmp eax, ebx
je 0x43836c
cmp byte [eax], bl
mov dword [ebp - 0x2c0], eax
jne 0x438372
mov dword [ebp - 0x2c0], ebx
mov ecx, dword [ebp + 0x54]
xor eax, eax
lea edi, [ebp - 0x2bc]
stosd dword es:[edi], eax
mov eax, dword [ebp - 8]
dec eax
mov dword [ebp - 0x2b4], eax
xor eax, eax
mov dword [ebp - 0x2b8], 0x516a6c
lea edi, [ebp - 0x2b0]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x38]
mov dword [ebp - 0x2a8], eax
xor eax, eax
mov dword [ebp - 0x2ac], 0x516a64
lea edi, [ebp - 0x2a4]
stosd dword es:[edi], eax
mov eax, dword [0x890320]
mov dword [ebp - 0x29c], eax
xor eax, eax
lea edi, [ebp - 0x298]
mov dword [ebp - 0x2a0], 0x516a5c
stosd dword es:[edi], eax
mov dword [ebp - 0x294], 0x516a50
cmp ecx, ebx
je 0x4383ec
cmp byte [ecx], bl
sete al
cmp al, bl
je 0x4383f4
mov dword [ebp - 0x290], ebx
jmp 0x438402
lea ecx, [ebp + 0x54]
call fcn.004a0e99
mov dword [ebp - 0x290], eax
mov ecx, dword [ebp + 0x58]
xor eax, eax
lea edi, [ebp - 0x28c]
stosd dword es:[edi], eax
mov dword [ebp - 0x288], 0x516a40
cmp ecx, ebx
je 0x438425
cmp byte [ecx], bl
sete al
cmp al, bl
je 0x43842d
mov dword [ebp - 0x284], ebx
jmp 0x43843b
lea ecx, [ebp + 0x58]
call fcn.004a0e99
mov dword [ebp - 0x284], eax
xor eax, eax
lea edi, [ebp - 0x280]
stosd dword es:[edi], eax
mov dword [ebp - 0x27c], 0x516a38
call fcn.00467587
test al, al
je 0x438465
call fcn.004678e1
test al, al
je 0x438465
xor edi, edi
inc edi
jmp 0x438467
xor edi, edi
call fcn.004678c3
movzx esi, al
neg esi
sbb esi, esi
and esi, 4
call fcn.004675d0
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
or eax, esi
or eax, edi
mov dword [ebp - 0x278], eax
xor eax, eax
lea edi, [ebp - 0x274]
stosd dword es:[edi], eax
xor cl, cl
mov dword [ebp - 0x270], 0x516a2c
call fcn.0046b273
movzx eax, al
mov dword [ebp - 0x26c], eax
xor eax, eax
lea edi, [ebp - 0x268]
stosd dword es:[edi], eax
mov dword [ebp - 0x264], 0x516a24
call fcn.004c9e72
movzx eax, al
mov dword [ebp - 0x260], eax
xor eax, eax
lea edi, [ebp - 0x25c]
stosd dword es:[edi], eax
mov dword [ebp - 0x258], 0x516a1c
call fcn.004b8fc2
xor ecx, ecx
test al, al
setne cl
xor eax, eax
lea edi, [ebp - 0x250]
mov dword [ebp - 0x254], ecx
stosd dword es:[edi], eax
movzx eax, byte [0x88dd6f]
mov dword [ebp - 0x248], eax
xor eax, eax
mov dword [ebp - 0x24c], 0x516a14
lea edi, [ebp - 0x244]
stosd dword es:[edi], eax
mov dword [ebp - 0x240], 0x516a04
call fcn.00468f66
mov esi, 0x516a00
mov dword [ebp - 0x23c], esi
test al, al
jne 0x438549
mov dword [ebp - 0x23c], 0x515864
xor eax, eax
lea edi, [ebp - 0x238]
stosd dword es:[edi], eax
movzx eax, word [ebp - 0x670]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x670]
and eax, ecx
mov dword [ebp - 0x230], eax
xor eax, eax
mov dword [ebp - 0x234], 0x5169f8
lea edi, [ebp - 0x22c]
stosd dword es:[edi], eax
mov eax, dword [0x88fb30]
push 0x1c
xor edx, edx
pop ecx
div ecx
mov dword [ebp - 0x228], 0x5169f0
lea edi, [ebp - 0x220]
dec eax
mov dword [ebp - 0x224], eax
xor eax, eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x218], eax
xor eax, eax
mov dword [ebp - 0x21c], 0x5169e8
lea edi, [ebp - 0x214]
stosd dword es:[edi], eax
mov dword [ebp - 0x210], 0x5169e0
call fcn.004b8c49
xor ecx, ecx
test al, al
setne cl
xor eax, eax
lea edi, [ebp - 0x208]
mov dword [ebp - 0x20c], ecx
stosd dword es:[edi], eax
mov eax, dword [0x890330]
mov dword [ebp - 0x200], eax
xor eax, eax
mov dword [ebp - 0x204], 0x5169d4
lea edi, [ebp - 0x1fc]
stosd dword es:[edi], eax
mov eax, dword [0x890334]
mov dword [ebp - 0x1f4], eax
xor eax, eax
mov dword [ebp - 0x1f8], 0x5169c8
lea edi, [ebp - 0x1f0]
stosd dword es:[edi], eax
mov eax, dword [0x890338]
mov dword [ebp - 0x1e8], eax
xor eax, eax
mov dword [ebp - 0x1ec], 0x5169bc
lea edi, [ebp - 0x1e4]
stosd dword es:[edi], eax
movzx eax, byte [0x89033c]
mov dword [ebp - 0x1dc], eax
xor eax, eax
mov dword [ebp - 0x1e0], 0x5169b4
lea edi, [ebp - 0x1d8]
stosd dword es:[edi], eax
movzx eax, byte [0x89033d]
mov dword [ebp - 0x1d0], eax
xor eax, eax
mov dword [ebp - 0x1d4], 0x5169ac
lea edi, [ebp - 0x1cc]
stosd dword es:[edi], eax
movzx eax, byte [0x89033e]
mov dword [ebp - 0x1c4], eax
xor eax, eax
mov dword [ebp - 0x1c8], 0x5169a4
lea edi, [ebp - 0x1c0]
stosd dword es:[edi], eax
mov eax, dword [0x890340]
mov dword [ebp - 0x1b8], eax
xor eax, eax
lea edi, [ebp - 0x1b4]
mov dword [ebp - 0x1bc], 0x51699c
stosd dword es:[edi], eax
mov eax, dword [0x890344]
mov dword [ebp - 0x1ac], eax
xor eax, eax
mov dword [ebp - 0x1b0], 0x516990
lea edi, [ebp - 0x1a8]
stosd dword es:[edi], eax
mov dword [ebp - 0x1a4], 0x516988
call fcn.004b6d1c
mov dword [ebp - 0x1a0], eax
xor eax, eax
lea edi, [ebp - 0x19c]
stosd dword es:[edi], eax
mov eax, dword [0x890314]
mov dword [ebp - 0x194], eax
xor eax, eax
mov dword [ebp - 0x198], 0x516980
lea edi, [ebp - 0x190]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x188], eax
xor eax, eax
mov dword [ebp - 0x18c], 0x516974
lea edi, [ebp - 0x184]
stosd dword es:[edi], eax
mov eax, dword [0x890318]
mov dword [ebp - 0x17c], eax
xor eax, eax
mov dword [ebp - 0x180], 0x51696c
lea edi, [ebp - 0x178]
stosd dword es:[edi], eax
mov dword [ebp - 0x174], 0x516964
mov dword [ebp - 0x170], 0x51695c
lea edi, [ebp - 0x16c]
stosd dword es:[edi], eax
mov eax, dword [0x89032c]
mov dword [ebp - 0x164], eax
xor eax, eax
mov dword [ebp - 0x168], 0x516954
lea edi, [ebp - 0x160]
stosd dword es:[edi], eax
mov eax, dword [0x890470]
mov dword [ebp - 0x158], eax
xor eax, eax
mov dword [ebp - 0x15c], 0x51694c
lea edi, [ebp - 0x154]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp - 0x14c], eax
xor eax, eax
mov dword [ebp - 0x150], 0x516944
lea edi, [ebp - 0x148]
stosd dword es:[edi], eax
movzx eax, byte [0x88f998]
mov dword [ebp - 0x140], eax
xor eax, eax
mov dword [ebp - 0x144], 0x516938
lea edi, [ebp - 0x13c]
stosd dword es:[edi], eax
lea ecx, [ebp + 0x64]
mov dword [ebp - 0x138], 0x516930
call fcn.004a0e99
mov ecx, dword [ebp + 0x78]
mov dword [ebp - 0x134], eax
xor eax, eax
lea edi, [ebp - 0x130]
stosd dword es:[edi], eax
mov eax, dword [ecx + 0x214]
mov dword [ebp - 0x12c], 0x516928
cmp eax, ebx
je 0x438826
cmp byte [eax], bl
mov dword [ebp - 0x128], eax
jne 0x43882c
mov dword [ebp - 0x128], ebx
xor eax, eax
lea edi, [ebp - 0x124]
stosd dword es:[edi], eax
mov eax, dword [ecx + 0x218]
mov dword [ebp - 0x120], 0x516920
cmp eax, ebx
je 0x438853
cmp byte [eax], bl
mov dword [ebp - 0x11c], eax
jne 0x438859
mov dword [ebp - 0x11c], ebx
xor eax, eax
lea edi, [ebp - 0x118]
stosd dword es:[edi], eax
mov dword [ebp - 0x114], 0x516914
mov dword [ebp - 0x110], esi
cmp dword [0x890394], ebx
jne 0x438884
mov dword [ebp - 0x110], 0x515864
xor eax, eax
lea edi, [ebp - 0x10c]
stosd dword es:[edi], eax
mov dword [ebp - 0x108], 0x516908
mov dword [ebp - 0x104], esi
cmp dword [0x890398], ebx
jne 0x4388af
mov dword [ebp - 0x104], 0x515864
mov ecx, dword [ebp + 0x40]
xor eax, eax
lea edi, [ebp - 0x100]
stosd dword es:[edi], eax
mov dword [ebp - 0xfc], 0x516900
mov dword [ebp - 0xf8], esi
lea edi, [ebp - 0xf4]
stosd dword es:[edi], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xec], eax
xor eax, eax
mov dword [ebp - 0xf0], 0x5168f8
lea edi, [ebp - 0xe8]
stosd dword es:[edi], eax
lea edi, [ebp - 0xdc]
mov dword [ebp - 0xe4], 0x5168f0
mov dword [ebp - 0xe0], ecx
stosd dword es:[edi], eax
mov dword [ebp - 0xd8], 0x5168e8
cmp ecx, ebx
je 0x438923
lea ecx, [ebp - 4]
call fcn.004a0486
mov dword [ebp - 0xd4], eax
jmp 0x438929
mov dword [ebp - 0xd4], ebx
mov ecx, dword [ebp - 0x18]
xor eax, eax
lea edi, [ebp - 0xd0]
stosd dword es:[edi], eax
mov dword [ebp - 0xcc], 0x5168e0
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0xc8], eax
xor eax, eax
lea edi, [ebp - 0xc4]
stosd dword es:[edi], eax
mov dword [ebp - 0xc0], 0x5168d4
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0xbc], eax
xor eax, eax
lea edi, [ebp - 0xb8]
stosd dword es:[edi], eax
mov dword [ebp - 0xb4], 0x5168cc
mov dword [ebp - 0xb0], ecx
lea edi, [ebp - 0xac]
stosd dword es:[edi], eax
mov eax, 0xfa0
push 0x6c
pop edx
cmp dword [ecx + 0x14], eax
ja 0x438999
cmp dword [ecx + 0x18], eax
ja 0x438999
push 0x69
pop edx
mov esi, dword [ebp + 0x68]
push ebx
push edx
mov edi, 0x800
lea eax, [ebp - 0x5b8]
mov edx, edi
push eax
sub edx, esi
lea ecx, [ebp + esi - 0xf1c]
call fcn.0044be49
lea ecx, [ebp - 4]
add esi, eax
call fcn.004a0bd2
mov eax, dword [0x89022c]
mov dword [ebp - 0x644], eax
mov eax, dword [0x890230]
mov dword [ebp - 0x640], eax
mov eax, dword [0x8901b4]
mov dword [ebp - 0x638], eax
mov eax, dword [0x8901b8]
mov dword [ebp - 0x634], eax
mov eax, dword [0x8901bc]
mov dword [ebp - 0x62c], eax
mov eax, dword [0x8901c0]
mov dword [ebp - 0x628], eax
mov eax, dword [0x88dd50]
mov dword [ebp - 0x620], eax
mov eax, dword [0x88dd54]
mov dword [ebp - 0x61c], eax
mov eax, dword [0x88dd48]
mov dword [ebp - 0x614], eax
mov eax, dword [0x88dd4c]
mov dword [ebp - 0x610], eax
mov eax, dword [0x88dd60]
mov dword [ebp - 0x608], eax
mov eax, dword [0x88dd64]
mov dword [ebp - 0x604], eax
mov eax, dword [0x88dd58]
mov dword [ebp - 0x5fc], eax
mov eax, dword [0x88dd5c]
mov dword [ebp - 0x648], 0x5168c4
mov dword [ebp - 0x63c], 0x5168b8
mov dword [ebp - 0x630], 0x5168ac
mov dword [ebp - 0x624], 0x5168a4
mov dword [ebp - 0x618], 0x51689c
mov dword [ebp - 0x60c], 0x516894
mov dword [ebp - 0x600], 0x51688c
mov dword [ebp - 0x5f8], eax
mov dword [ebp - 0x5f4], 0x516884
call fcn.004cd541
mov dword [ebp - 0x5f0], eax
mov dword [ebp - 0x5ec], edx
mov dword [ebp - 0x5e8], 0x51687c
call fcn.004cd566
mov dword [ebp - 0x5e4], eax
mov dword [ebp - 0x5e0], edx
mov dword [ebp - 0x5dc], 0x516870
call fcn.004cd4e3
mov dword [ebp - 0x5d8], eax
mov dword [ebp - 0x5d4], edx
mov dword [ebp - 0x5d0], 0x516864
call fcn.004cd512
mov dword [ebp - 0x5cc], eax
mov eax, dword [0x890324]
mov dword [ebp - 0x5c0], eax
mov eax, dword [0x890328]
push 2
mov dword [ebp - 0x5c8], edx
mov dword [ebp - 0x5bc], eax
push 0xc
lea eax, [ebp - 0x648]
mov edx, edi
push eax
sub edx, esi
lea ecx, [ebp + esi - 0xf1c]
mov dword [ebp - 0x5c4], 0x51685c
call fcn.0044be49
lea ecx, [ebp + 0x34]
call fcn.0043918b
lea eax, [ebp - 0xf1c]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x438b5c
sub eax, esi
mov ecx, 0x7ff
sub ecx, eax
push ecx
lea ecx, [ebp + 0x34]
call fcn.004a0e99
push eax
lea eax, [ebp - 0xf1c]
push eax
call sub.msvcrt.dll_strncat
add esp, 0xc
lea ecx, [ebp + 0x34]
call fcn.004a0ea5
lea ecx, [ebp + 0x34]
mov byte [0x88f998], bl
call fcn.004a0c7d
lea ecx, [ebp + 0x58]
call fcn.004a0c7d
lea ecx, [ebp + 0x54]
call fcn.004a0c7d
lea ecx, [ebp + 0x64]
call fcn.004a0c7d
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0xf1c]
push eax
call fcn.00466ca2
add esp, 4
call fcn.0047cfd9
mov al, byte [ebp + 0x7c]
mov byte [esi + 1], al
mov byte [esi], 1
test al, 0xc
jne 0x438bf4
test dword [ebp + 0x7c], 0x300
jne 0x438bf4
test dword [ebp + 0x7c], 0x400
je 0x438bed
test al, 2
je 0x438bf4
mov edi, 0x436399
jmp 0x438bf9
mov edi, 0x43633f
lea ecx, [ebp - 0x674]
call fcn.004015ef
lea eax, [ebp - 0x674]
push eax
lea ecx, [ebp + 0x7c]
call fcn.00401966
push ebx
push 1
push ebx
push 1
lea eax, [ebp + 0x7c]
push eax
push edi
mov edx, esi
lea ecx, [ebp - 0xf1c]
call fcn.00453a11
mov ecx, dword [ebp + 0x7c]
mov esi, eax
pop edi
cmp ecx, ebx
je 0x438c3a
call fcn.00401728
mov ecx, dword [ebp - 0x14]
mov dl, 1
call fcn.00479b79
cmp esi, ebx
pop esi
jne 0x438c68
lea ecx, [ebp + 8]
call fcn.004a0c7d
lea ecx, [ebp + 0xc]
call fcn.004a0c7d
lea ecx, [ebp + 0x1c]
call fcn.004a0c7d
mov al, bl
jmp 0x4375f2
call fcn.0047cff8
mov bl, 1
jmp 0x438c49