Function at 0x40e190
Capabilities:
Accept command line arguments

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436e11
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x10b0
call fcn.00436be0
mov eax, dword [0x455008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1084], edi
mov ecx, dword [ebx + 0xc]
xor al, al
mov byte [ebp - 0x1069], al
mov esi, 1
mov byte [ebp - 0x106b], al
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1058], ecx
mov byte [ebp - 0x106c], 1
mov byte [ebp - 0x106a], 0
cmp eax, esi
jle 0x40e25e
nop
push 0x444fac
push dword [ecx + esi*4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40e24e
mov eax, dword [ebp - 0x1058]
push 0x444fc0
push dword [eax + esi*4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40e24e
mov eax, dword [ebx + 8]
inc esi
mov ecx, dword [ebp - 0x1058]
cmp esi, eax
jl 0x40e210
jmp 0x40e25e
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x1058]
mov byte [ebp - 0x106b], 1
cmp eax, 2
jge 0x40e26c
push 0
push dword [ecx]
jmp 0x40ec66
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov esi, 1
mov dword [ebp - 0x1074], eax
mov eax, dword [sym.imp.pdh.dll_PdhOpenQueryW]
mov dword [ebp - 0x109c], eax
mov eax, dword [sym.imp.pdh.dll_PdhAddCounterW]
mov dword [ebp - 0x10a0], eax
mov eax, dword [sym.imp.pdh.dll_PdhCollectQueryData]
mov dword [ebp - 0x1088], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov dword [ebp - 0x108c], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1094], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x1090], eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x1054], esi
mov dword [ebp - 0x1098], eax
nop
lea esi, [ecx + esi*4]
push 0x44f53c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410b05
push 0x44f544
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410b05
push 0x444d1c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410002
push 0x444d34
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410002
push 0x444fac
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410002
push 0x444fc0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410002
push 0x44f55c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fffb
push 0x44f564
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fffb
push 0x44f56c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ff85
push 0x44f574
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ff85
push 0x44f57c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ff7c
push 0x44f584
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ff7c
push 0x44f58c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fec8
push 0x44f594
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fec8
push 0x44f59c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fec8
push 0x44f5a4
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fec8
push 0x44f5ac
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x41029b
push 0x44f5bc
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x41029b
push 0x44f620
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fe7c
push 0x44f628
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fe7c
push 0x44f54c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fd8a
push 0x44f554
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fd8a
push 0x44f634
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fb50
push 0x44f63c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40fb50
push 0x44f648
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f913
push 0x44f650
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f913
push 0x44f658
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f907
push 0x44f660
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f907
push 0x44f668
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8f4
push 0x44f670
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8f4
push 0x44f678
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f607
push 0x44f680
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f607
push 0x44f930
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f52e
push 0x44f938
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f52e
push 0x44f940
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f49f
push 0x44f948
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f49f
push 0x44f700
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f493
push 0x44f708
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f493
push 0x44f950
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f47e
push 0x44f958
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f47e
push 0x44f960
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f472
push 0x44f96c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f472
push 0x44f978
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3be
push 0x44f980
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3be
push 0x44f988
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3be
push 0x44f990
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3be
push 0x44f6a8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3b5
push 0x44f6b0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f3b5
push 0x44f6c8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f33e
push 0x44f6d0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f33e
push 0x44f6d8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f316
push 0x44f998
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f316
push 0x44f6e8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f30a
push 0x44f6e0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f30a
push 0x44f698
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f301
push 0x44f6a0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f301
push 0x44f6b8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f2f8
push 0x44f6c0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f2f8
push 0x44f688
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f2ef
push 0x44f690
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f2ef
push 0x44f9a0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f26d
push 0x44f9a8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f26d
push 0x44f9b0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f261
push 0x44f9b8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f261
push 0x44f9c0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f03f
push 0x44f9c8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f03f
push 0x44f9d0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f03f
push 0x44f9d8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f03f
push 0x44f6f0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ef11
push 0x44f6f8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ef11
push 0x44fc20
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee8f
push 0x44fc28
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee8f
push 0x44fc30
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee7a
push 0x44fc38
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee7a
push 0x44fc40
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee07
push 0x44fc4c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ee07
push 0x44fc58
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40eddd
push 0x44fc60
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40eddd
push 0x44fc68
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40edd1
push 0x44fc70
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40edd1
push 0x44f710
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40edc5
push 0x44f71c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40edc5
push 0x44736c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecc9
push 0x447374
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecc9
push 0x44fc8c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410034
push 0x44fc94
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410034
push 0x44fca8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecbd
push 0x44fcb0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecbd
push 0x44fcb8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecb1
push 0x44fcc0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ecb1
push 0x44fcc8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40eca5
push 0x44fcd0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40eca5
push 0x44fcd8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ec99
push 0x44fce0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ec99
push 0x44fce8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ec8d
push 0x44fcf0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ec8d
cmp byte [ebp - 0x106a], 0
je 0x40eba5
cmp dword [edi + 0x10], 0
mov ecx, edi
jne 0x410025
push 1
push dword [esi]
call fcn.0040e020
test al, al
jne 0x410002
mov ecx, edi
call fcn.0040e000
jmp 0x40ec6d
mov ecx, dword [esi]
xor edx, edx
mov byte [ebp - 0x106a], 1
mov dword [ebp - 0x105c], edx
lea eax, [ecx + 2]
mov dword [ebp - 0x1070], eax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ebc0
sub ecx, dword [ebp - 0x1070]
sar ecx, 1
test ecx, ecx
jle 0x40ec19
mov eax, dword [esi]
movzx eax, word [eax + edx*2]
push eax
call fcn.004204cf
add esp, 4
test eax, eax
je 0x40ec2e
mov ecx, dword [esi]
mov edx, dword [ebp - 0x105c]
inc edx
mov dword [ebp - 0x105c], edx
lea eax, [ecx + 2]
mov dword [ebp - 0x1070], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40ec02
sub ecx, dword [ebp - 0x1070]
sar ecx, 1
cmp edx, ecx
jl 0x40ebd7
cmp byte [ebp - 0x106c], 0
mov eax, dword [esi]
jne 0x40ec41
mov dword [0x456680], eax
jmp 0x410002
mov eax, dword [esi]
mov byte [ebp - 0x106c], 0
mov dword [0x456680], eax
jmp 0x410002
push 0x456670
push 0x44fcf8
push eax
call fcn.0040c310
add esp, 0xc
test eax, eax
jne 0x410002
push 0
mov eax, dword [ebp - 0x1058]
push dword [eax]
mov ecx, edi
call fcn.0040cd10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00415f69
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
mov byte [edi + 0x17a9], 1
jmp 0x410002
mov byte [edi + 0x17a8], 1
jmp 0x410002
mov byte [edi + 0x17a7], 1
jmp 0x410002
mov byte [edi + 0x17a6], 1
jmp 0x410002
mov byte [edi + 0x17a5], 0
jmp 0x410002
mov ecx, dword [ebp - 0x1054]
push 0
lea eax, [ecx + 2]
cmp eax, dword [ebx + 8]
mov eax, dword [ebp - 0x1058]
jge 0x40ec64
inc ecx
push dword [eax + ecx*4]
lea esi, [eax + ecx*4]
mov dword [ebp - 0x1054], ecx
mov ecx, edi
call fcn.0040e020
test al, al
je 0x40eb99
mov eax, dword [esi + 4]
lea ecx, [edi + 0x7a4]
add dword [ebp - 0x1054], 2
push eax
push 0x44fc78
push 0x800
push ecx
mov dword [edi + 0x7a0], eax
mov dword [ebp - 0x1070], ecx
call fcn.004013f0
mov esi, dword [ebp - 0x1054]
add esp, 0x10
mov eax, dword [ebx + 8]
cmp esi, eax
jge 0x41000b
mov edi, dword [ebp - 0x1070]
mov eax, dword [ebp - 0x1058]
push 0x20
push dword [eax + esi*4]
call fcn.00417897
add esp, 8
test eax, eax
je 0x40ed87
push 0x44fc84
push 0x800
push edi
call fcn.0041fb02
mov eax, dword [ebp - 0x1058]
add esp, 0xc
push dword [eax + esi*4]
push 0x800
push edi
call fcn.0041fb02
mov eax, 0x447364
jmp 0x40eda0
push 0x44738c
push 0x800
push edi
call fcn.0041fb02
mov eax, dword [ebp - 0x1058]
mov eax, dword [eax + esi*4]
add esp, 0xc
push eax
push 0x800
push edi
call fcn.0041fb02
mov eax, dword [ebx + 8]
inc esi
add esp, 0xc
cmp esi, eax
jl 0x40ed42
mov edi, dword [ebp - 0x1084]
jmp 0x41000b
mov byte [edi + 0x79c], 1
jmp 0x410002
mov byte [edi + 0x79b], 1
jmp 0x410002
mov esi, dword [ebx + 8]
cmp esi, 2
je 0x4100ff
cmp esi, 3
jne 0x40edfb
cmp byte [ebp - 0x106b], 0
jne 0x4100ff
mov byte [edi + 0x799], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0x790]
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40ee6f
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0x790], eax
jmp 0x410002
mov byte [edi + 0x78c], 1
mov word [edi + 0x84], 0x101
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0x788]
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40eef7
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0x788], eax
test eax, eax
je 0x40ec5c
mov byte [edi + 0x84], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1070], eax
cmp eax, dword [ebx + 8]
jge 0x40efd9
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40efd9
cmp dword [ebp - 0x1064], 0
jg 0x40efd9
mov eax, dword [ebp - 0x1068]
jl 0x40ef67
cmp eax, 0xffffffff
ja 0x40efd9
test eax, eax
je 0x40efd9
push 0xa
lea eax, [ebp - 0x4c]
mov esi, 5
push eax
push 0x44fb6c
call dword [ebp - 0x108c]
test eax, eax
je 0x40efbd
lea eax, [ebp - 0x105c]
mov dword [ebp - 0x105c], 0
push eax
lea eax, [ebp - 0x4c]
push 0x44fb8c
push eax
call fcn.0040c340
add esp, 0xc
cmp eax, 1
jne 0x40efbd
mov ecx, dword [ebp - 0x105c]
lea eax, [ecx - 1]
cmp eax, 0x3e6
cmovbe esi, ecx
mov eax, dword [ebp - 0x1068]
cmp eax, esi
ja 0x40efd9
mov dword [edi + 0x780], eax
mov eax, dword [ebp - 0x1070]
mov dword [ebp - 0x1054], eax
push 0x44fb90
push 0x447348
call dword [ebp - 0x1090]
mov esi, dword [ebp - 0x1094]
push eax
call esi
test eax, eax
je 0x40f00d
mov eax, edi
xor dl, dl
mov cl, 1
mov byte [eax + 0x77d], dl
mov byte [eax + 0x77e], cl
jmp 0x410002
push 0x44fba4
push 0x446918
call dword [ebp - 0x1098]
push eax
call esi
test eax, eax
je 0x4101b3
mov eax, edi
mov dl, 1
xor cl, cl
mov byte [eax + 0x77d], dl
mov byte [eax + 0x77e], cl
jmp 0x410002
mov ecx, dword [ebp - 0x1054]
add ecx, 2
mov dword [ebp - 0x1054], ecx
cmp ecx, dword [ebx + 8]
jge 0x40ec5c
mov eax, dword [edi + 0x158]
lea edx, [edi + 0x158]
and eax, dword [edx + 4]
cmp eax, 0xffffffff
jne 0x40ec5c
mov eax, dword [ebp - 0x1058]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x1064], eax
test edx, edx
je 0x40ec5c
movzx eax, word [eax]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1080], xmm0
mov ecx, eax
mov edx, dword [ebp - 0x107c]
mov dword [ebp - 0x1070], 0
test ax, ax
je 0x40f14d
mov ecx, dword [ebp - 0x1080]
nop word [eax + eax]
movzx edi, ax
add eax, 0xffffffd0
mov dword [ebp - 0x107c], edi
mov edi, dword [ebp - 0x1084]
cmp ax, 9
ja 0x40ec5c
mov dword [ebp - 0x105c], ecx
mov eax, ecx
mov edi, dword [ebp - 0x1064]
mov ecx, edx
shld ecx, eax, 2
shl eax, 2
add dword [ebp - 0x105c], eax
mov eax, dword [ebp - 0x107c]
adc edx, ecx
movzx eax, ax
mov ecx, dword [ebp - 0x105c]
shld edx, ecx, 1
mov dword [ebp - 0x105c], edx
add ecx, ecx
cdq
add ecx, eax
mov eax, dword [ebp - 0x1070]
adc dword [ebp - 0x105c], edx
sub ecx, 0x30
mov edx, dword [ebp - 0x105c]
sbb edx, 0
inc eax
mov dword [ebp - 0x1070], eax
movzx eax, word [edi + eax*2]
mov edi, dword [ebp - 0x1084]
test ax, ax
jne 0x40f0c0
jmp 0x40f153
mov ecx, dword [ebp - 0x1080]
push 0x104
lea eax, [edi + 0x36c]
mov dword [edi + 0x158], ecx
push eax
push 0x104
lea eax, [edi + 0x574]
mov dword [edi + 0x15c], edx
push eax
push 0x104
lea ecx, [edi + 0x164]
push ecx
push 0x44f9e0
push dword [esi + 4]
call fcn.0040c310
add esp, 0x20
cmp eax, 3
je 0x40f1c9
push 0x104
lea eax, [edi + 0x36c]
push eax
push 0x104
lea eax, [edi + 0x164]
push eax
push 0x44fa08
push dword [esi + 4]
call fcn.0040c310
add esp, 0x18
cmp eax, 2
jne 0x4101d3
mov eax, dword [esi + 4]
mov dword [edi + 0x160], eax
lea eax, [edi + 0x60]
push eax
push 0
push 0
call dword [ebp - 0x109c]
mov dword [ebp - 0x1064], eax
test eax, eax
jne 0x41023b
lea eax, [edi + 0x64]
push eax
push 0
push dword [edi + 0x160]
push dword [edi + 0x60]
call dword [ebp - 0x10a0]
mov dword [ebp - 0x1064], eax
test eax, eax
jne 0x410207
push dword [edi + 0x60]
call dword [ebp - 0x1088]
mov dword [ebp - 0x1064], eax
test eax, eax
jne 0x4101f6
push 0x44f9d0
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f24e
push 0x44f9d8
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
jne 0x40f255
mov byte [edi + 0x77c], 1
mov byte [edi + 0x84], 1
jmp 0x410002
mov byte [edi + 0x150], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0x14c]
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40f2d5
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0x14c], eax
test eax, eax
je 0x40ec5c
mov byte [edi + 0x84], 1
jmp 0x410002
mov byte [edi + 0x50], 1
jmp 0x410002
mov byte [edi + 0x52], 1
jmp 0x410002
mov byte [edi + 0x51], 1
jmp 0x410002
mov byte [edi + 0x148], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
mov byte [edi + 0x54], 1
mov eax, dword [esi + 4]
mov dword [edi + 0x144], eax
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0x140]
mov byte [edi + 0x53], 1
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 1
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40f3aa
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0x140], eax
jmp 0x410002
mov byte [edi + 0x55], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
cmp dword [edi + 0x138], 0xffffffff
lea eax, [edi + 0x138]
jne 0x40ec5c
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40f433
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0x138], eax
push 0x44f988
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f45f
push 0x44f990
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
jne 0x40f466
mov byte [edi + 0x13c], 1
mov byte [edi + 0x84], 1
jmp 0x410002
mov byte [edi + 0x132], 1
jmp 0x410002
mov byte [edi + 0x131], 1
mov word [edi + 0x84], 0x101
jmp 0x410002
mov byte [edi + 0x130], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
add eax, 2
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0x120]
push eax
push 0x4453e0
push dword [esi + 4]
call fcn.0040c310
add esp, 0xc
test eax, eax
je 0x40ec5c
mov eax, dword [ebp - 0x1054]
lea edx, [ebp - 0x1068]
mov esi, dword [ebp - 0x1058]
inc eax
xorps xmm0, xmm0
mov dword [ebp - 0x1054], eax
push 1
movlpd qword [ebp - 0x1068], xmm0
mov ecx, dword [esi + eax*4 + 4]
call fcn.00409fa0
add esp, 4
test al, al
je 0x410273
mov esi, dword [ebp - 0x1054]
mov eax, dword [ebp - 0x1068]
inc esi
mov ecx, dword [ebp - 0x1064]
mov dword [edi + 0x128], eax
mov dword [edi + 0x12c], ecx
jmp 0x410008
mov eax, dword [ebp - 0x1054]
mov ecx, edi
add eax, 4
push 0
cmp eax, dword [ebx + 8]
jge 0x410027
push dword [esi + 4]
call fcn.0040e020
test al, al
je 0x40eb99
mov eax, dword [ebp - 0x1058]
mov esi, dword [ebp - 0x1054]
push 0x456670
push 0x4453e0
push dword [eax + esi*4 + 8]
call fcn.0040c310
add esp, 0xc
test eax, eax
je 0x40ec5c
lea eax, [edi + 0x114]
add esi, 2
push eax
mov eax, dword [ebp - 0x1058]
push 0x4453e0
mov dword [ebp - 0x1054], esi
push dword [eax + esi*4 + 4]
call fcn.0040c310
add esp, 0xc
test eax, eax
je 0x40ec5c
mov eax, esi
lea edx, [ebp - 0x1068]
mov esi, dword [ebp - 0x1058]
inc eax
xorps xmm0, xmm0
mov dword [ebp - 0x1054], eax
push 1
movlpd qword [ebp - 0x1068], xmm0
mov ecx, dword [esi + eax*4 + 4]
call fcn.00409fa0
add esp, 4
test al, al
je 0x410273
mov esi, dword [ebp - 0x1054]
mov eax, dword [ebp - 0x1068]
inc esi
mov ecx, dword [ebp - 0x1064]
mov dword [edi + 0x118], eax
mov dword [edi + 0x11c], ecx
jmp 0x410008
mov eax, dword [ebp - 0x1054]
inc eax
mov byte [edi + 0x112], 1
mov dword [ebp - 0x1064], eax
cmp eax, dword [ebx + 8]
jge 0x40f8b9
push 0x44f688
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f690
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f698
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6a0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6a8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6b0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6b8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6c0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6c8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6d0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6d8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6e0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6e8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6e0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6f0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f6f8
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f700
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f708
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f56c
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f574
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f710
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x44f71c
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x444d34
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x444d1c
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x444fc0
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
push 0x444fac
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40f8b9
mov ecx, dword [esi + 4]
movzx eax, word [ecx]
cmp eax, 0x2d
je 0x410992
cmp eax, 0x2f
je 0x410992
push 0
push ecx
mov ecx, edi
call fcn.0040e020
test al, al
je 0x40eb99
mov esi, dword [ebp - 0x1064]
jmp 0x410008
push 0x820
call fcn.0041f021
add esp, 4
mov esi, eax
push esi
push 0x410
call dword [ebp - 0x1074]
push 0
push esi
mov ecx, edi
call fcn.0040e020
test al, al
je 0x41027c
push esi
call fcn.0041f006
add esp, 4
jmp 0x410002
mov byte [edi + 0x111], 1
mov byte [edi + 0x84], 1
jmp 0x410002
mov byte [edi + 0x110], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
mov eax, dword [esi + 4]
mov dword [ebp - 0x105c], eax
cmp word [eax], 0
jne 0x40f9b3
cmp dword [edi + 0x104], 0x15555555
lea esi, [edi + 0x100]
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x1064], eax
je 0x410b48
mov dword [ebp - 0x10a8], esi
mov dword [ebp - 4], 2
push 0xc
mov dword [ebp - 0x10a4], 0
call fcn.00416174
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov edx, dword [ebp - 0x1064]
mov dword [ebp - 0x10a4], 0
mov dword [eax + 8], 0x44f644
inc dword [esi + 4]
mov ecx, dword [edx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [edx + 4], eax
mov dword [ecx], eax
mov byte [ebp - 0x1069], 1
jmp 0x410002
push 0x800
lea eax, [ebp - 0x850]
push 0
push eax
call fcn.00417b90
mov eax, dword [ebp - 0x105c]
add esp, 0xc
test eax, eax
je 0x40fb44
nop word [eax + eax]
cmp word [eax], 0
je 0x40fb44
xor ecx, ecx
push 0x2c
push eax
mov word [ebp - 0x850], cx
call fcn.00417897
add esp, 8
mov dword [ebp - 0x1070], eax
test eax, eax
je 0x40fa0d
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x105c]
cmp word [eax], 0x2a
je 0x40fa38
push 0x44f644
lea eax, [ebp - 0x850]
push 0x400
push eax
call fcn.0041fb02
mov eax, dword [ebp - 0x105c]
add esp, 0xc
push eax
lea eax, [ebp - 0x850]
push 0x400
push eax
call fcn.0041fb02
mov ecx, dword [ebp - 0x105c]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fa56
mov eax, dword [esi + 4]
sub ecx, edx
sar ecx, 1
cmp word [eax + ecx*2 - 2], 0x2a
je 0x40fa89
push 0x44f644
lea eax, [ebp - 0x850]
push 0x400
push eax
call fcn.0041fb02
add esp, 0xc
lea eax, [ebp - 0x850]
push eax
call fcn.00420470
mov ecx, dword [edi + 0x108]
add esp, 4
cmp dword [edi + 0x10c], 0x15555555
mov dword [ebp - 0x1064], eax
lea eax, [edi + 0x108]
mov dword [ebp - 0x107c], ecx
je 0x410b48
mov dword [ebp - 0x10b0], eax
mov dword [ebp - 4], 3
push 0xc
mov dword [ebp - 0x10ac], 0
call fcn.00416174
mov edx, dword [ebp - 0x107c]
add esp, 4
mov ecx, dword [ebp - 0x1064]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 8], ecx
inc dword [edi + 0x10c]
mov ecx, dword [edx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
push 0
push dword [ebp - 0x105c]
mov dword [edx + 4], eax
mov dword [ebp - 0x10ac], 0
mov dword [ecx], eax
call fcn.00417897
add esp, 8
mov dword [ebp - 0x105c], eax
cmp dword [ebp - 0x1070], 0
je 0x40fb3c
add eax, 2
mov dword [ebp - 0x105c], eax
test eax, eax
jne 0x40f9e0
mov byte [ebp - 0x1069], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
mov eax, dword [esi + 4]
mov dword [ebp - 0x105c], eax
cmp word [eax], 0
jne 0x40fbf0
cmp dword [edi + 0x10c], 0x15555555
lea esi, [edi + 0x108]
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [ebp - 0x1064], eax
je 0x410b48
mov dword [ebp - 0x10b8], esi
mov dword [ebp - 4], 0
push 0xc
mov dword [ebp - 0x10b4], 0
call fcn.00416174
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov edx, dword [ebp - 0x1064]
mov dword [ebp - 0x10b4], 0
mov dword [eax + 8], 0x44f644
inc dword [esi + 4]
mov ecx, dword [edx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [edx + 4], eax
mov dword [ecx], eax
mov byte [ebp - 0x1069], 1
jmp 0x410002
push 0x800
lea eax, [ebp - 0x1050]
push 0
push eax
call fcn.00417b90
mov eax, dword [ebp - 0x105c]
add esp, 0xc
test eax, eax
je 0x40fb44
cmp word [eax], 0
je 0x40fb44
xor ecx, ecx
push 0x2c
push eax
mov word [ebp - 0x1050], cx
call fcn.00417897
add esp, 8
mov dword [ebp - 0x1070], eax
test eax, eax
je 0x40fc41
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebp - 0x105c]
cmp word [eax], 0x2a
je 0x40fc6c
push 0x44f644
lea eax, [ebp - 0x1050]
push 0x400
push eax
call fcn.0041fb02
mov eax, dword [ebp - 0x105c]
add esp, 0xc
push eax
lea eax, [ebp - 0x1050]
push 0x400
push eax
call fcn.0041fb02
mov ecx, dword [ebp - 0x105c]
add esp, 0xc
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fc90
mov eax, dword [esi + 4]
sub ecx, edx
sar ecx, 1
cmp word [eax + ecx*2 - 2], 0x2a
je 0x40fcc3
push 0x44f644
lea eax, [ebp - 0x1050]
push 0x400
push eax
call fcn.0041fb02
add esp, 0xc
lea eax, [ebp - 0x1050]
push eax
call fcn.00420470
mov ecx, dword [edi + 0x100]
add esp, 4
cmp dword [edi + 0x104], 0x15555555
mov dword [ebp - 0x1064], eax
lea eax, [edi + 0x100]
mov dword [ebp - 0x107c], ecx
je 0x410b48
mov dword [ebp - 0x10c0], eax
mov dword [ebp - 4], 1
push 0xc
mov dword [ebp - 0x10bc], 0
call fcn.00416174
mov edx, dword [ebp - 0x107c]
add esp, 4
mov ecx, dword [ebp - 0x1064]
mov dword [ebp - 4], 0xffffffff
mov dword [eax + 8], ecx
inc dword [edi + 0x104]
mov ecx, dword [edx + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
push 0
push dword [ebp - 0x105c]
mov dword [edx + 4], eax
mov dword [ebp - 0x10bc], 0
mov dword [ecx], eax
call fcn.00417897
add esp, 8
mov dword [ebp - 0x105c], eax
cmp dword [ebp - 0x1070], 0
je 0x40fd76
add eax, 2
mov dword [ebp - 0x105c], eax
test eax, eax
jne 0x40fc14
mov byte [ebp - 0x1069], 1
jmp 0x410002
mov eax, dword [ebp - 0x1054]
mov ecx, dword [ebx + 8]
inc eax
mov dword [edi + 0xfc], 2
mov dword [ebp - 0x105c], eax
cmp eax, ecx
jge 0x40fe61
mov eax, dword [esi + 4]
mov ecx, 0x445354
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40fdda
test dx, dx
je 0x40fdd6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40fdda
add eax, 4
add ecx, 4
test dx, dx
jne 0x40fdb4
xor eax, eax
jmp 0x40fddf
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40fe01
mov esi, dword [ebp - 0x105c]
mov dword [edi + 0xfc], 1
mov word [edi + 0x84], 0x101
jmp 0x410008
mov eax, dword [ebp - 0x105c]
mov ecx, dword [ebx + 8]
cmp eax, ecx
jge 0x40fe61
mov eax, dword [esi + 4]
mov ecx, 0x44f630
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40fe4b
test dx, dx
je 0x40fe38
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40fe4b
add eax, 4
add ecx, 4
test dx, dx
jne 0x40fe16
mov esi, dword [ebp - 0x1054]
xor eax, eax
test eax, eax
cmove esi, dword [ebp - 0x105c]
jmp 0x40fe67
mov esi, dword [ebp - 0x1054]
sbb eax, eax
or eax, 1
test eax, eax
cmove esi, dword [ebp - 0x105c]
jmp 0x40fe67
mov esi, dword [ebp - 0x1054]
mov byte [edi + 0x110], 1
mov word [edi + 0x84], 0x101
jmp 0x410008
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
cmp dword [edi + 0xf4], 0
jne 0x40ec5c
mov edx, dword [esi + 4]
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40fea7
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [edi + 0xe4]
call fcn.00410e80
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
cmp dword [edi + 0xdc], 0xffffffff
lea eax, [edi + 0xdc]
jne 0x40ec5c
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40ff3d
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [edi + 0xdc], eax
push 0x44f59c
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x40ff69
push 0x44f5a4
push dword [esi]
call fcn.0041eafa
add esp, 8
test eax, eax
jne 0x40ff70
mov byte [edi + 0xe0], 1
mov byte [edi + 0x84], 1
jmp 0x410002
mov byte [edi + 0xd8], 0
jmp 0x410002
mov eax, dword [ebp - 0x1054]
inc eax
mov dword [ebp - 0x1054], eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
lea eax, [edi + 0xd4]
test eax, eax
je 0x40ec5c
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1068]
xorps xmm0, xmm0
push 0
movlpd qword [ebp - 0x1068], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1064], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1068]
jl 0x40ffed
cmp eax, 0xffffffff
ja 0x40ec5c
imul eax, eax, 0x3e8
mov dword [edi + 0xd4], eax
jmp 0x410002
mov byte [edi + 0xd1], 1
mov esi, dword [ebp - 0x1054]
mov eax, dword [ebx + 8]
inc esi
mov dword [ebp - 0x1054], esi
cmp esi, eax
jge 0x410106
mov ecx, dword [ebp - 0x1058]
jmp 0x40e2d0
push 0
mov eax, dword [ebp - 0x1058]
push dword [eax]
jmp 0x40ec68
mov eax, dword [ebp - 0x1054]
mov ecx, edi
add eax, 7
mov byte [edi + 0x17a4], 1
push 0
cmp eax, dword [ebx + 8]
jne 0x410027
push dword [esi + 4]
call fcn.0040e020
test al, al
je 0x40eb99
mov ecx, dword [ebp - 0x1058]
mov esi, dword [ebp - 0x1054]
push 0x44f9c8
mov eax, dword [ecx + esi*4 + 8]
mov dword [edi + 0x7a0], eax
push dword [ecx + esi*4 + 0xc]
call fcn.0041eafa
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x1058]
push 0
jne 0x40ec64
mov ecx, dword [eax + esi*4 + 0x10]
lea edx, [ebp - 0x1078]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1078], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1074], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1078]
jl 0x4100d7
cmp eax, 0xffffffff
ja 0x40ec5c
mov dword [0x456670], eax
mov eax, dword [ebp - 0x1058]
push 0x44fc9c
push dword [eax + esi*4 + 0x14]
call fcn.0041eafa
add esp, 8
test eax, eax
jne 0x40ec5c
mov al, 1
jmp 0x41010c
mov byte [edi + 0x798], 1
mov al, byte [ebp - 0x106a]
cmp dword [0x456670], 0
jne 0x41013d
cmp dword [0x456680], 0
jne 0x41013d
cmp dword [edi + 0x7a0], 0
jne 0x41013d
cmp byte [edi + 0x112], 0
jne 0x41013d
cmp byte [edi + 0x798], 0
je 0x40ec5c
test al, al
je 0x41038c
cmp byte [edi + 0x79b], 0
je 0x41038c
cmp byte [ebp - 0x106c], 0
je 0x41038c
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x410363
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x4101a5
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x410373
mov ecx, edi
call fcn.0040cca0
push 0x44fbc0
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov ecx, edi
call fcn.0040cca0
push dword [esi + 4]
push 0x44fa24
push 0
push 0
call fcn.00414dd0
add esp, 0x10
or eax, 0xffffffff
jmp 0x40ec6d
mov ecx, edi
call fcn.0040cca0
push dword [esi + 4]
push 0x44fb18
jmp 0x410216
mov ecx, edi
call fcn.0040cca0
push dword [esi + 4]
push 0x44fac0
push 0
push 0
call fcn.00414dd0
mov ecx, dword [ebp - 0x1064]
mov edx, 0x44514c
push edx
call fcn.0040a300
add esp, 0x14
or eax, 0xffffffff
jmp 0x40ec6d
mov ecx, edi
call fcn.0040cca0
push 0x44fa60
push 0
push 0
call fcn.00414dd0
mov ecx, dword [ebp - 0x1064]
add esp, 0xc
mov edx, 0x44514c
push 0x44514c
call fcn.0040a300
add esp, 4
or eax, 0xffffffff
jmp 0x40ec6d
push 0
push dword [esi]
jmp 0x40ec66
mov ecx, edi
call fcn.0040cca0
push dword [edi + 0x10]
push 0x44f4e8
call fcn.00401380
add esp, 8
or eax, 0xffffffff
jmp 0x40ec6d
mov eax, dword [ebp - 0x1054]
inc eax
push 0
cmp eax, dword [ebx + 8]
jge 0x40ec5e
mov ecx, dword [esi + 4]
lea edx, [ebp - 0x1078]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1078], xmm0
call fcn.00409fa0
add esp, 4
test al, al
je 0x40ec5c
cmp dword [ebp - 0x1074], 0
jg 0x40ec5c
mov eax, dword [ebp - 0x1078]
jl 0x4102ef
cmp eax, 0xffffffff
ja 0x40ec5c
push eax
xorps xmm0, xmm0
lea eax, [ebp - 0x3c]
push 0x43ea80
push eax
movups xmmword [ebp - 0x3c], xmm0
movups xmmword [ebp - 0x2c], xmm0
movq qword [ebp - 0x1c], xmm0
call fcn.00410fd0
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
push 0
push 2
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov esi, eax
test esi, esi
je 0x41033b
push esi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or eax, 0xffffffff
jmp 0x40ec6d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, edi
mov esi, eax
call fcn.0040cca0
lea eax, [ebp - 0x3c]
push eax
push 0x44f5d0
push 0
push 0
call fcn.00414dd0
mov ecx, esi
jmp 0x410225
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x410373
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x44fd00
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp dword [edi + 0x788], 0xffffffff
je 0x4103ea
cmp dword [edi + 0x14c], 0xffffffff
jne 0x4103f3
cmp dword [edi + 0xdc], 0xffffffff
jne 0x4103ea
cmp dword [edi + 0x138], 0xffffffff
jne 0x4103ea
mov eax, dword [edi + 0x158]
and eax, dword [edi + 0x15c]
cmp eax, 0xffffffff
jne 0x4103ea
cmp byte [edi + 0x111], 0
jne 0x4103ea
mov ecx, edi
call fcn.0040cca0
push 0x44fd78
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp dword [edi + 0x14c], 0xffffffff
je 0x410438
cmp dword [edi + 0xfc], 0
jne 0x410438
cmp byte [edi + 0x78c], 0
jne 0x410438
cmp dword [edi + 0xdc], 0xffffffff
jne 0x410438
cmp dword [edi + 0x138], 0xffffffff
jne 0x410438
mov eax, dword [edi + 0x158]
and eax, dword [edi + 0x15c]
cmp eax, 0xffffffff
jne 0x410438
cmp byte [edi + 0x111], 0
jne 0x410438
mov byte [edi + 0x784], 1
cmp byte [edi + 0x799], 0
je 0x4104c0
cmp dword [edi + 0xdc], 0xffffffff
jne 0x4104c0
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x410497
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x41048c
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x4104a7
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4104a7
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x44fe80
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov ecx, dword [edi + 0xfc]
test ecx, ecx
jne 0x410652
cmp byte [edi + 0xd8], cl
jne 0x41054b
push ecx
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x410522
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x410517
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x410532
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x410532
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x44fee8
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp byte [edi + 0x131], 0
jne 0x4105d3
cmp byte [ebp - 0x1069], 0
je 0x4105d3
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4105aa
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x41059f
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x4105ba
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4105ba
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x44ff58
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp byte [edi + 0x110], 0
je 0x410652
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x410629
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x41061e
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x410639
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x410639
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x450000
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov dl, byte [edi + 0x77d]
test dl, dl
je 0x410782
cmp byte [edi + 0x78c], 0
je 0x4106df
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x4106b6
lea eax, [ebp - 0x1074]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x4106ab
push esi
lea edx, [ebp - 0x1074]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x4106c6
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x4106c6
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x4500d0
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
test ecx, ecx
je 0x410759
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x410730
lea eax, [ebp - 0x1088]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x410725
push esi
lea edx, [ebp - 0x1088]
call fcn.00402190
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x410740
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x410740
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push 0x4501a0
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp byte [edi + 0x131], 0
je 0x410782
mov ecx, edi
call fcn.0040cca0
push 0x450270
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov dh, byte [edi + 0x77e]
test dh, dh
je 0x4107b5
cmp byte [edi + 0x148], 0
je 0x4107b5
mov ecx, edi
call fcn.0040cca0
push 0x450338
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov al, byte [edi + 0xd1]
mov byte [ebp - 0x1069], al
test al, al
je 0x4107ed
test dl, dl
jne 0x4107ed
test dh, dh
jne 0x4107ed
mov ecx, edi
call fcn.0040cca0
push 0x4503f8
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov eax, dword [edi + 0x118]
mov esi, dword [edi + 0x11c]
cmp eax, 0xbadbad
jne 0x410808
test esi, esi
je 0x4108b5
cmp dword [edi + 0x14c], 0xffffffff
jne 0x410ae5
cmp dword [edi + 0xdc], 0xffffffff
jne 0x410ae5
cmp dword [edi + 0x138], 0xffffffff
jne 0x410ae5
mov eax, dword [edi + 0x158]
and eax, dword [edi + 0x15c]
cmp eax, 0xffffffff
jne 0x410ae5
cmp byte [edi + 0x79b], 0
jne 0x410ae5
cmp byte [edi + 0x111], 0
jne 0x410ae5
cmp byte [edi + 0x78c], 0
jne 0x410ae5
test ecx, ecx
jne 0x410ae5
cmp byte [edi + 0x131], cl
jne 0x410ae5
cmp byte [edi + 0x17a6], cl
jne 0x410ae5
cmp byte [edi + 0x17a7], cl
jne 0x410ae5
cmp byte [edi + 0x17a8], cl
jne 0x410ae5
cmp byte [edi + 0x17a9], cl
jne 0x410ae5
mov eax, dword [edi + 0x118]
cmp byte [edi + 0x130], 0
je 0x4108f0
cmp byte [edi + 0x112], 0
jne 0x4108f0
cmp eax, 0xbadbad
jne 0x4108f0
test esi, esi
jne 0x4108f0
mov ecx, edi
call fcn.0040cca0
push 0x450558
push esi
push esi
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov cl, byte [edi + 0x112]
mov byte [ebp - 0x106b], cl
test cl, cl
mov ecx, dword [edi + 0xfc]
je 0x4109b2
cmp byte [edi + 0x798], 0
jne 0x410992
test dl, dl
jne 0x410992
cmp eax, 0xbadbad
jne 0x410992
test esi, esi
jne 0x410992
cmp dword [edi + 0x14c], 0xffffffff
jne 0x410992
cmp dword [edi + 0xdc], 0xffffffff
jne 0x410992
cmp dword [edi + 0x138], 0xffffffff
jne 0x410992
mov eax, dword [edi + 0x158]
and eax, dword [edi + 0x15c]
cmp eax, 0xffffffff
jne 0x410992
cmp byte [edi + 0x79b], dl
jne 0x410992
cmp byte [edi + 0x111], dl
jne 0x410992
cmp byte [edi + 0x78c], dl
jne 0x410992
test ecx, ecx
jne 0x410992
cmp byte [edi + 0x131], dl
jne 0x410992
cmp byte [edi + 0x17a6], dl
jne 0x410992
cmp byte [edi + 0x17a7], dl
jne 0x410992
cmp byte [edi + 0x17a8], dl
jne 0x410992
cmp byte [edi + 0x17a9], dl
je 0x4109b2
mov ecx, edi
call fcn.0040cca0
push 0x44f728
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
cmp byte [edi + 0x798], 0
je 0x410ade
cmp byte [ebp - 0x106b], 0
jne 0x410abe
cmp byte [edi + 0x50], 0
jne 0x410abe
cmp byte [edi + 0x51], 0
jne 0x410abe
cmp byte [edi + 0x52], 0
jne 0x410abe
cmp byte [edi + 0x53], 0
jne 0x410abe
cmp byte [edi + 0x54], 0
jne 0x410abe
cmp byte [edi + 0x55], 0
jne 0x410abe
cmp byte [edi + 0x148], 0
jne 0x410abe
test dl, dl
jne 0x410abe
test dh, dh
jne 0x410abe
cmp byte [ebp - 0x1069], dh
jne 0x410abe
cmp dword [edi + 0xd4], 0
jne 0x410abe
cmp dword [edi + 0x118], 0xbadbad
jne 0x410abe
test esi, esi
jne 0x410abe
cmp dword [edi + 0x14c], 0xffffffff
jne 0x410abe
cmp dword [edi + 0xdc], 0xffffffff
jne 0x410abe
cmp dword [edi + 0x138], 0xffffffff
jne 0x410abe
mov eax, dword [edi + 0x158]
and eax, dword [edi + 0x15c]
cmp eax, 0xffffffff
jne 0x410abe
cmp byte [edi + 0x79b], dh
jne 0x410abe
cmp byte [edi + 0x111], dh
jne 0x410abe
cmp byte [edi + 0x78c], dh
jne 0x410abe
test ecx, ecx
jne 0x410abe
cmp byte [edi + 0x131], cl
jne 0x410abe
cmp byte [edi + 0x17a6], cl
jne 0x410abe
cmp byte [edi + 0x17a7], cl
jne 0x410abe
cmp byte [edi + 0x17a8], cl
jne 0x410abe
cmp byte [edi + 0x17a9], cl
je 0x410ade
mov ecx, edi
call fcn.0040cca0
push 0x4505e8
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
xor eax, eax
jmp 0x40ec6d
mov ecx, edi
call fcn.0040cca0
push 0x450460
push 0
push 0
call fcn.00414dd0
add esp, 0xc
or eax, 0xffffffff
jmp 0x40ec6d
mov eax, dword [ebp - 0x1054]
inc eax
cmp eax, dword [ebx + 8]
jge 0x40ec5c
push 0x44f54c
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
je 0x410b41
push 0x44f554
push dword [esi + 4]
call fcn.0041eafa
add esp, 8
test eax, eax
jne 0x40ec5c
push 1
jmp 0x40ec5e
push 0x44698c
call fcn.00415f49
int3