Function at 0x416340
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Delete file
Encode data using xor
Get file size
Print debug messages
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4cf1c4
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x43fc
call fcn.004c4250
mov eax, dword [0x4d50b4]
xor eax, esp
mov dword [esp + 0x43f8], eax
push ebx
push esi
push edi
mov eax, dword [0x4d50b4]
xor eax, esp
push eax
lea eax, [esp + 0x4410]
mov dword fs:[0], eax
mov esi, ecx
lea edi, [esi + 0x1650]
xor ebx, ebx
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0x1c], esi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x7c], edi
jb 0x4163a5
mov eax, dword [edi]
jmp 0x4163a7
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x4164cd
push 0x10
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x4163d4
mov dword [eax + 8], ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 0xc], ebx
mov esi, eax
jmp 0x4163d6
xor esi, esi
mov dword [esp + 0x4418], 0xffffffff
cmp esi, ebx
je 0x4164ba
cmp dword [edi + 0x14], 0x10
jb 0x4163f1
mov edi, dword [edi]
cmp dword [esi + 8], ebx
jne 0x41648f
push ebx
push 6
push esi
push edi
call fcn.0048ea50
add esp, 0x10
cmp eax, ebx
jne 0x41648f
add byte [eax], 0
invalid
mov eax, 1
cmp dword [edi + 0x14], 0x10
jb 0x4164c2
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x1680], 0x10
lea eax, [esi + 0x166c]
jb 0x4164de
mov eax, dword [eax]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x24], eax
cmp eax, 0xffffffff
jne 0x41650c
push 0x40841c
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
jmp 0x417df6
push ebx
push eax
mov dword [esp + 0xfc], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
push edi
call fcn.004920d6
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, ebx
jne 0x416542
push 0x408430
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor eax, eax
jmp 0x417df6
mov ecx, dword [esp + 0x24]
push ebx
lea eax, [esp + 0xf8]
push eax
push edi
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x416578
push 0x408450
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
xor eax, eax
jmp 0x417df6
push 0x408468
call dword [sym.imp.SHLWAPI.dll_StrToIntA]
xor ecx, ecx
cmp edi, ebx
jle 0x41659c
lea esp, [esp]
mov dl, al
xor dl, cl
add byte [ecx + esi], dl
inc ecx
cmp ecx, edi
jl 0x416590
mov edi, 0xf
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
mov dword [esp + 0x4418], 2
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
push 0x3ff
lea eax, [esp + 0x571]
push ebx
mov byte [esp + 0x4420], 4
push eax
mov byte [esp + 0x578], bl
call sub.MSVCR100.dll_memset
lea ecx, [esp + 0x578]
add esp, 0xc
push ecx
mov ecx, esi
mov dword [esp + 0x28], 0x408490
call fcn.00420e40
add esp, 4
lea ecx, [esp + 0x56c]
test eax, eax
jne 0x416639
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xa0]
push edx
call fcn.004210d0
add esp, 4
mov esi, edi
mov eax, 0x4085c0
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x2e0], edi
mov dword [esp + 0x2dc], ebx
mov byte [esp + 0x2cc], bl
call fcn.00420310
mov byte [esp + 0x4418], 5
mov eax, 0x4085d0
lea ecx, [esp + 0x2e8]
mov dword [esp + 0x2fc], edi
mov dword [esp + 0x2f8], ebx
mov byte [esp + 0x2e8], bl
call fcn.00420310
mov byte [esp + 0x4418], 6
mov esi, 0xd
mov eax, 0x4085e0
lea ecx, [esp + 0x304]
mov dword [esp + 0x318], edi
mov dword [esp + 0x314], ebx
mov byte [esp + 0x304], bl
call fcn.00420310
mov byte [esp + 0x4418], 7
mov esi, edi
mov eax, 0x4085f0
lea ecx, [esp + 0x320]
mov dword [esp + 0x334], edi
mov dword [esp + 0x330], ebx
mov byte [esp + 0x320], bl
call fcn.00420310
mov byte [esp + 0x4418], 8
mov eax, 0x408600
lea ecx, [esp + 0x33c]
mov dword [esp + 0x350], edi
mov dword [esp + 0x34c], ebx
mov byte [esp + 0x33c], bl
call fcn.00420310
mov byte [esp + 0x4418], 9
mov eax, 0x408610
lea ecx, [esp + 0x358]
mov dword [esp + 0x36c], edi
mov dword [esp + 0x368], ebx
mov byte [esp + 0x358], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xa
mov eax, 0x408620
lea ecx, [esp + 0x374]
mov dword [esp + 0x388], edi
mov dword [esp + 0x384], ebx
mov byte [esp + 0x374], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xb
mov eax, 0x408630
lea ecx, [esp + 0x390]
mov dword [esp + 0x3a4], edi
mov dword [esp + 0x3a0], ebx
mov byte [esp + 0x390], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xc
mov esi, 0x11
mov eax, 0x408640
lea ecx, [esp + 0x3ac]
mov dword [esp + 0x3c0], edi
mov dword [esp + 0x3bc], ebx
mov byte [esp + 0x3ac], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xd
mov dword [esp + 0x3dc], edi
mov esi, 0xe
mov eax, 0x408654
lea ecx, [esp + 0x3c8]
mov dword [esp + 0x3d8], ebx
mov byte [esp + 0x3c8], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xe
mov eax, 0x408664
lea ecx, [esp + 0x3e4]
mov dword [esp + 0x3f8], edi
mov dword [esp + 0x3f4], ebx
mov byte [esp + 0x3e4], bl
call fcn.00420310
mov byte [esp + 0x4418], 0xf
mov esi, 0xd
mov eax, 0x408674
lea ecx, [esp + 0x400]
mov dword [esp + 0x414], edi
mov dword [esp + 0x410], ebx
mov byte [esp + 0x400], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x10
mov esi, 0x20
mov eax, 0x408684
lea ecx, [esp + 0x41c]
mov dword [esp + 0x430], edi
mov dword [esp + 0x42c], ebx
mov byte [esp + 0x41c], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x11
mov esi, 0xd
mov eax, 0x4086a8
lea ecx, [esp + 0x438]
mov dword [esp + 0x44c], edi
mov dword [esp + 0x448], ebx
mov byte [esp + 0x438], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x12
mov esi, 0xb
mov eax, 0x4086b8
lea ecx, [esp + 0x454]
mov dword [esp + 0x468], edi
mov dword [esp + 0x464], ebx
mov byte [esp + 0x454], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x13
mov esi, 9
mov eax, 0x4086c4
lea ecx, [esp + 0x470]
mov dword [esp + 0x484], edi
mov dword [esp + 0x480], ebx
mov byte [esp + 0x470], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x14
mov esi, 0x1b
mov eax, 0x4086d0
lea ecx, [esp + 0x48c]
mov dword [esp + 0x4a0], edi
mov dword [esp + 0x49c], ebx
mov byte [esp + 0x48c], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x15
mov esi, 9
mov eax, 0x4086ec
lea ecx, [esp + 0x4a8]
mov dword [esp + 0x4bc], edi
mov dword [esp + 0x4b8], ebx
mov byte [esp + 0x4a8], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x16
mov dword [esp + 0x4d8], edi
mov dword [esp + 0x4d4], ebx
mov esi, 4
mov eax, 0x4086f8
lea ecx, [esp + 0x4c4]
mov byte [esp + 0x4c4], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x17
mov esi, 7
mov eax, 0x408700
lea ecx, [esp + 0x4e0]
mov dword [esp + 0x4f4], edi
mov dword [esp + 0x4f0], ebx
mov byte [esp + 0x4e0], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x18
mov esi, 8
mov eax, 0x408708
lea ecx, [esp + 0x4fc]
mov dword [esp + 0x510], edi
mov dword [esp + 0x50c], ebx
mov byte [esp + 0x4fc], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x19
mov eax, 0x408714
lea ecx, [esp + 0x518]
mov dword [esp + 0x52c], edi
mov dword [esp + 0x528], ebx
mov byte [esp + 0x518], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x1a
mov eax, 0x408714
lea ecx, [esp + 0x534]
mov dword [esp + 0x548], edi
mov dword [esp + 0x544], ebx
mov byte [esp + 0x534], bl
call fcn.00420310
mov byte [esp + 0x4418], 0x1b
mov eax, 0x408714
lea ecx, [esp + 0x550]
mov dword [esp + 0x564], edi
mov dword [esp + 0x560], ebx
mov byte [esp + 0x550], bl
call fcn.00420310
lea eax, [esp + 0x41c]
mov byte [esp + 0x4418], 0x1c
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0xc
jmp 0x416af5
xor ebx, ebx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x140]
push ecx
sub esp, 0x1c
mov edi, esp
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], 0xf
add edx, 0xfffffeb0
mov dword [esp + 0x98], esp
mov byte [edi], bl
push edx
or ecx, 0xffffffff
xor ebx, ebx
mov esi, 1
call fcn.00420000
mov ecx, dword [esp + 0x40]
mov edx, esi
call fcn.00420c60
add esp, 0x20
lea esi, [esp + 0x90]
lea ecx, [esp + 0x140]
test eax, eax
jne 0x416b53
mov ecx, dword [esp + 0x18]
call fcn.00419900
add dword [esp + 0x18], 0x1c
dec dword [esp + 0x1c]
jne 0x416af3
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete___void__]
add esp, 4
push 0x10
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
xor edi, edi
cmp eax, edi
je 0x416b95
mov esi, eax
mov dword [eax + 8], edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], edi
mov dword [esp + 0x18], esi
jmp 0x416b9b
mov dword [esp + 0x18], edi
mov esi, edi
mov byte [esp + 0x4418], 0x1c
cmp esi, edi
je 0x417d14
mov eax, dword [esp + 0x7c]
cmp dword [eax + 0x14], 0x10
jb 0x416bb7
mov eax, dword [eax]
cmp dword [esi + 8], edi
jne 0x417cb1
push edi
push 6
push esi
push eax
call fcn.0048ea50
add esp, 0x10
cmp eax, edi
jne 0x417cb1
mov ecx, dword [esi]
lea eax, [esi + 0xc]
push eax
push edi
push edi
push 0x408720
push ecx
mov dword [esi + 8], 1
mov dword [esp + 0x38], eax
call fcn.0046e030
add esp, 0x14
cmp eax, edi
jne 0x417cb1
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], ebx
mov eax, 0x408774
lea edi, [esp + 0x108]
mov byte [esp + 0x4418], 0x1f
mov dword [esp + 0x64], ebx
call fcn.004203e0
mov byte [esp + 0x4418], 0x20
cmp dword [esi + 8], ebx
je 0x417c54
mov edx, dword [esp + 0x24]
mov eax, dword [esi]
push edx
push ebx
push ebx
push 0x408778
push eax
call fcn.0046e030
add esp, 0x14
test eax, eax
jne 0x417c35
mov edx, 0x4087d0
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417c35
mov edx, 0x408830
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417c35
lea edi, [ebx + 0xe]
lea ecx, [esp + 0x108]
push ecx
mov eax, 0x408888
call fcn.00419860
dec edi
jne 0x416ca2
mov eax, dword [esp + 0x90]
lea ecx, [eax + 0x134]
mov ebx, 0x10
cmp dword [ecx + 0x14], ebx
jb 0x416cd6
mov edx, dword [ecx]
mov dword [esp + 0x20], edx
jmp 0x416cda
mov dword [esp + 0x20], ecx
cmp dword [eax + 0x12c], ebx
lea ecx, [eax + 0x118]
jb 0x416cea
mov ecx, dword [ecx]
cmp dword [eax + 0x110], ebx
mov dword [esp + 0x68], ecx
lea ecx, [eax + 0xfc]
jb 0x416d04
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
jmp 0x416d08
mov dword [esp + 0x5c], ecx
cmp dword [eax + 0xf4], ebx
lea ecx, [eax + 0xe0]
jb 0x416d18
mov ecx, dword [ecx]
cmp dword [eax + 0xd8], ebx
mov dword [esp + 0x34], ecx
lea ecx, [eax + 0xc4]
jb 0x416d32
mov edx, dword [ecx]
mov dword [esp + 0x60], edx
jmp 0x416d36
mov dword [esp + 0x60], ecx
cmp dword [eax + 0xbc], ebx
lea ecx, [eax + 0xa8]
jb 0x416d46
mov ecx, dword [ecx]
mov dword [esp + 0x3c], ecx
lea ecx, [eax + 0x8c]
mov dword [esp + 0x28], ecx
cmp dword [ecx + 0x14], ebx
jb 0x416d61
mov edx, dword [ecx]
mov dword [esp + 0x70], edx
jmp 0x416d65
mov dword [esp + 0x70], ecx
cmp dword [ecx + 0x14], ebx
jb 0x416d6c
mov ecx, dword [ecx]
mov dword [esp + 0x44], ecx
lea ecx, [eax + 0x70]
mov dword [esp + 0x78], ecx
cmp dword [ecx + 0x14], ebx
jb 0x416d84
mov edx, dword [ecx]
mov dword [esp + 0x58], edx
jmp 0x416d88
mov dword [esp + 0x58], ecx
cmp dword [ecx + 0x14], ebx
jb 0x416d8f
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ecx
lea ecx, [eax + 0x54]
mov dword [esp + 0x1c], ecx
cmp dword [ecx + 0x14], ebx
jb 0x416da7
mov edx, dword [ecx]
mov dword [esp + 0x54], edx
jmp 0x416dab
mov dword [esp + 0x54], ecx
lea edi, [eax + 0x38]
mov dword [esp + 0x7c], edi
cmp dword [edi + 0x14], ebx
jb 0x416db9
mov edi, dword [edi]
cmp dword [eax + 0x30], ebx
lea edx, [eax + 0x1c]
jb 0x416dc3
mov edx, dword [edx]
cmp dword [eax + 0x14], ebx
jb 0x416dca
mov eax, dword [eax]
mov ecx, dword [esp + 0x108]
cmp dword [esp + 0x11c], ebx
jae 0x416de1
lea ecx, [esp + 0x108]
push 0x408760
push 0x4088a0
mov ebx, dword [esp + 0x28]
push ebx
push 0x408734
push 0x408760
push 0x4088ac
mov ebx, dword [esp + 0x80]
push ebx
push 0x408734
push 0x408760
push 0x4088b8
mov ebx, dword [esp + 0x84]
push ebx
push 0x408734
push 0x408760
push 0x4088c4
mov ebx, dword [esp + 0x6c]
push ebx
push 0x408734
push 0x408760
push 0x4088d4
mov ebx, dword [esp + 0xa8]
push ebx
push 0x408734
push 0x408760
push 0x4088e0
mov ebx, dword [esp + 0x94]
push ebx
push 0x408734
push 0x408760
mov ebx, dword [esp + 0xd4]
push 0x4088ec
push ebx
mov ebx, dword [esp + 0xb0]
push 0x408734
push 0x408760
push 0x4088f8
push ebx
mov ebx, dword [esp + 0xd4]
push 0x408734
push 0x408760
push 0x408908
push ebx
mov ebx, dword [esp + 0xd8]
push 0x408734
push 0x408760
push 0x408914
push ebx
mov ebx, dword [esp + 0xf0]
push 0x408734
push 0x408760
push 0x408920
push ebx
push 0x408734
push 0x408760
push 0x408930
push edi
push 0x408734
push 0x408760
push 0x40893c
push edx
push 0x408734
push 0x408760
push 0x40894c
push eax
push 0x408734
push ecx
lea edx, [esp + 0xa50]
call fcn.00419fc0
add esp, 0xe4
lea edx, [esp + 0x96c]
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417c2e
mov edx, 0x40895c
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417c2e
lea eax, [esp + 0x108]
push eax
mov eax, 0x408774
call fcn.00419830
mov ecx, dword [esp + 0xa4]
sub ecx, dword [esp + 0xa0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x416ff4
mov esi, dword [esp + 0xa0]
mov ebx, eax
jmp 0x416f90
push 0x2d
mov eax, 0x40899c
lea ecx, [esp + 0x10c]
call fcn.00419c10
push 0
push esi
or eax, 0xffffffff
lea edi, [esp + 0x110]
call fcn.00419b70
push 3
mov eax, 0x4089cc
mov ecx, edi
call fcn.00419c10
push 0x17
mov eax, 0x4089d0
mov ecx, edi
call fcn.00419c10
mov ecx, dword [esp + 0x1c]
push 0
push ecx
or eax, 0xffffffff
call fcn.00419b70
push 5
mov eax, 0x4089e8
mov ecx, edi
call fcn.00419c10
add esi, 0x1c
dec ebx
jne 0x416f90
mov eax, 0x4089d0
lea edi, [esp + 0x124]
call fcn.004203e0
mov ecx, edi
lea esi, [esp + 0x80]
mov byte [esp + 0x4418], 0x21
call fcn.00419900
mov ecx, edi
mov byte [esp + 0x4418], 0x20
call fcn.00420410
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x80]
push 0
push edx
or eax, 0xffffffff
call fcn.00419b70
mov eax, 0x4089f0
lea edi, [esp + 0x124]
call fcn.004203e0
mov ecx, edi
mov byte [esp + 0x4418], 0x22
call fcn.00419900
mov ecx, edi
mov byte [esp + 0x4418], 0x20
call fcn.00420410
mov eax, dword [esp + 0x90]
mov ebx, dword [esp + 0x80]
add eax, 0x1c
push 0
push eax
lea edi, [ebx + 0x1c]
or eax, 0xffffffff
call fcn.00419b70
cmp dword [esp + 0x11c], 0x10
mov eax, dword [esp + 0x108]
jae 0x4170a6
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x970]
push 0x3a98
push eax
call dword [sym.imp.MSVCR100.dll_strcpy_s]
mov esi, dword [esp + 0x24]
add esp, 0xc
lea edx, [esp + 0x96c]
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417d0b
mov edx, 0x408a18
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417d0b
mov eax, 0x408ab8
lea edi, [esp + 0x1cc]
call fcn.004203e0
mov eax, 0x408acc
lea edi, [esp + 0x1e8]
mov byte [esp + 0x4418], 0x23
call fcn.004203e0
push fcn.00420410
push 0x420440
push 2
push 0x1c
lea ecx, [esp + 0x1a4]
push ecx
mov byte [esp + 0x442c], 0x24
call fcn.004c4009
mov edx, dword [esp + 0x28]
push edx
or ecx, 0xffffffff
xor ebx, ebx
lea edi, [esp + 0x198]
mov byte [esp + 0x441c], 0x25
call fcn.00420000
lea eax, [esp + 0x1b0]
push eax
mov eax, 0x408ad8
call fcn.00419830
mov ecx, dword [esp + 0x28]
push ebx
push ecx
or eax, 0xffffffff
lea edi, [esp + 0x1b8]
call fcn.00419b70
lea edx, [esp + 0x108]
push edx
mov eax, 0x408ae0
call fcn.00419830
mov eax, 0x408bdc
lea edi, [esp + 0x204]
call fcn.004203e0
mov eax, 0x408be8
lea edi, [esp + 0x220]
mov byte [esp + 0x4418], 0x26
call fcn.004203e0
mov eax, 0x408bfc
lea edi, [esp + 0x23c]
mov byte [esp + 0x4418], 0x27
call fcn.004203e0
mov eax, 0x408c0c
lea edi, [esp + 0x258]
mov byte [esp + 0x4418], 0x28
call fcn.004203e0
mov eax, 0x408c20
lea edi, [esp + 0x274]
mov byte [esp + 0x4418], 0x29
call fcn.004203e0
mov eax, 0x408c34
lea edi, [esp + 0x290]
mov byte [esp + 0x4418], 0x2a
call fcn.004203e0
mov eax, 0x408c44
lea edi, [esp + 0x2ac]
mov byte [esp + 0x4418], 0x2b
call fcn.004203e0
mov byte [esp + 0x4418], 0x2c
mov eax, dword [esp + 0x1c4]
mov esi, dword [esp + 0x1b0]
mov ecx, 0x10
cmp eax, ecx
jae 0x41725c
lea esi, [esp + 0x1b0]
mov edx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x417273
lea edx, [esp + 0x194]
mov edi, dword [esp + 0x1fc]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x417290
lea edx, [esp + 0x1e8]
mov ebx, dword [esp + 0x1cc]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x1e0]
cmp edx, ecx
jae 0x4172ad
lea ebx, [esp + 0x1cc]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x2c8]
cmp dword [esp + 0x2dc], ecx
jae 0x4172c8
lea ebx, [esp + 0x2c8]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x4172de
lea ebx, [esp + 0x1b0]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x4172f9
lea ebx, [esp + 0x194]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x41730f
lea ebx, [esp + 0x1e8]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x417325
lea ebx, [esp + 0x1cc]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x2ac]
cmp dword [esp + 0x2c0], ecx
jae 0x417340
lea ebx, [esp + 0x2ac]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x417356
lea ebx, [esp + 0x1b0]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x417371
lea ebx, [esp + 0x194]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x417387
lea ebx, [esp + 0x1e8]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x41739d
lea ebx, [esp + 0x1cc]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0x290]
cmp dword [esp + 0x2a4], ecx
jae 0x4173bb
lea ebx, [esp + 0x290]
mov dword [esp + 0xc0], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x4173d4
lea ebx, [esp + 0x1b0]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x4173f2
lea ebx, [esp + 0x194]
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x41740b
lea ebx, [esp + 0x1e8]
mov dword [esp + 0xe4], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x417424
lea ebx, [esp + 0x1cc]
mov dword [esp + 0xd0], ebx
mov ebx, dword [esp + 0x274]
cmp dword [esp + 0x288], ecx
jae 0x417442
lea ebx, [esp + 0x274]
mov dword [esp + 0xd4], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x41745b
lea ebx, [esp + 0x1b0]
mov dword [esp + 0xd8], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x417479
lea ebx, [esp + 0x194]
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x417492
lea ebx, [esp + 0x1e8]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x4174ab
lea ebx, [esp + 0x1cc]
mov dword [esp + 0xcc], ebx
mov ebx, dword [esp + 0x258]
cmp dword [esp + 0x26c], ecx
jae 0x4174c9
lea ebx, [esp + 0x258]
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x4174e2
lea ebx, [esp + 0x1b0]
mov dword [esp + 0xb4], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x417500
lea ebx, [esp + 0x194]
mov dword [esp + 0xbc], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x417519
lea ebx, [esp + 0x1e8]
mov dword [esp + 0xb0], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x417532
lea ebx, [esp + 0x1cc]
mov dword [esp + 0xb8], ebx
mov ebx, dword [esp + 0x23c]
cmp dword [esp + 0x250], ecx
jae 0x417550
lea ebx, [esp + 0x23c]
mov dword [esp + 0xe8], ebx
mov ebx, dword [esp + 0x1b0]
cmp eax, ecx
jae 0x417569
lea ebx, [esp + 0x1b0]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x417584
lea ebx, [esp + 0x194]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x41759a
lea ebx, [esp + 0x1e8]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1cc]
cmp edx, ecx
jae 0x4175b0
lea ebx, [esp + 0x1cc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x220]
cmp dword [esp + 0x234], ecx
jae 0x4175cb
lea ebx, [esp + 0x220]
cmp eax, ecx
mov eax, dword [esp + 0x1b0]
mov dword [esp + 0x48], ebx
jae 0x4175e1
lea eax, [esp + 0x1b0]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x194]
cmp dword [esp + 0x1a8], ecx
jae 0x4175fc
lea eax, [esp + 0x194]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1e8]
cmp edi, ecx
jae 0x417612
lea eax, [esp + 0x1e8]
mov ebx, dword [esp + 0x1cc]
mov dword [esp + 0x74], eax
cmp edx, ecx
jae 0x417628
lea ebx, [esp + 0x1cc]
mov edi, dword [esp + 0x204]
cmp dword [esp + 0x218], ecx
jae 0x41763f
lea edi, [esp + 0x204]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x14], ecx
jb 0x41764c
mov edx, dword [eax]
jmp 0x41764e
mov edx, eax
cmp dword [eax + 0x14], ecx
jb 0x417655
mov eax, dword [eax]
cmp dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x108]
jae 0x41766c
lea ecx, [esp + 0x108]
push esi
mov esi, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x68]
push esi
push 0x408a78
mov esi, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x8c]
push esi
mov esi, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x84]
push esi
mov esi, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x88]
push 0x408a78
push esi
mov esi, dword [esp + 0x9c]
push esi
mov esi, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x100]
push esi
mov esi, dword [esp + 0x100]
push esi
mov esi, dword [esp + 0x134]
push 0x408a78
push esi
mov esi, dword [esp + 0x114]
push esi
mov esi, dword [esp + 0x134]
push esi
mov esi, dword [esp + 0x124]
push esi
mov esi, dword [esp + 0x12c]
push esi
mov esi, dword [esp + 0x134]
push 0x408a78
push esi
mov esi, dword [esp + 0x140]
push esi
mov esi, dword [esp + 0x154]
push esi
mov esi, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x150]
push esi
mov esi, dword [esp + 0x128]
push 0x408a78
push esi
mov esi, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x130]
push esi
mov esi, dword [esp + 0x13c]
push esi
mov esi, dword [esp + 0x170]
push esi
mov esi, dword [esp + 0xb8]
push 0x408a78
push esi
mov esi, dword [esp + 0xc4]
push esi
mov esi, dword [esp + 0xd0]
push esi
mov esi, dword [esp + 0xdc]
push esi
mov esi, dword [esp + 0xe8]
push esi
mov esi, dword [esp + 0xf4]
push 0x408a78
push esi
mov esi, dword [esp + 0x118]
push esi
mov esi, dword [esp + 0x124]
push esi
push ebx
push edi
push 0x408a78
push edx
push eax
push 0x408c54
push 0x408c5c
push 0x408920
push 0x408a78
push ecx
lea edx, [esp + 0xa48]
call fcn.00419fc0
mov esi, dword [esp + 0xf4]
add esp, 0xdc
lea edx, [esp + 0x96c]
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417bd0
mov edx, 0x408c70
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417bd0
mov eax, dword [esp + 0x90]
mov ebx, 0x10
cmp dword [eax + 0x14], ebx
jb 0x417814
mov eax, dword [eax]
push eax
push 0x408d60
lea edx, [esp + 0x974]
call fcn.00419fc0
add esp, 8
lea ecx, [esp + 0x140]
push ecx
lea eax, [esp + 0x970]
call fcn.00419830
lea edx, [esp + 0x108]
push edx
mov eax, 0x408d88
call fcn.00419830
mov edi, 4
jmp 0x417860
lea eax, [esp + 0x108]
push eax
mov eax, 0x408d88
call fcn.00419860
dec edi
jne 0x417860
mov eax, 0x408dec
lea edi, [esp + 0x124]
call fcn.004203e0
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x4418], 0x2d
cmp dword [eax + 0x14], ebx
jb 0x417899
mov eax, dword [eax]
lea ecx, [esp + 0x124]
push ecx
call fcn.00419860
mov eax, 0x408e08
lea edi, [esp + 0x178]
call fcn.004203e0
mov byte [esp + 0x4418], 0x2e
mov ebx, dword [esp + 0x78]
push 0
push ebx
or eax, 0xffffffff
call fcn.00419b70
mov edx, edi
push edx
mov eax, 0x408e48
call fcn.00419860
mov eax, 0x408e58
lea edi, [esp + 0x15c]
call fcn.004203e0
push 0
push ebx
or eax, 0xffffffff
mov byte [esp + 0x4420], 0x2f
call fcn.00419b70
mov eax, edi
push eax
mov eax, 0x408e98
call fcn.00419860
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x15c]
mov edi, edx
cmp eax, 0x10
jae 0x417928
lea edi, [esp + 0x15c]
mov ecx, 0x10
cmp dword [ebx + 0x14], ecx
jb 0x41793f
mov ecx, dword [ebx]
mov dword [esp + 0x74], ecx
mov ecx, 0x10
jmp 0x417943
mov dword [esp + 0x74], ebx
cmp eax, ecx
jb 0x41794d
mov dword [esp + 0x6c], edx
jmp 0x41795d
lea ecx, [esp + 0x15c]
mov dword [esp + 0x6c], ecx
mov ecx, 0x10
cmp dword [ebx + 0x14], ecx
jb 0x41796f
mov ecx, dword [ebx]
mov dword [esp + 0x50], ecx
mov ecx, 0x10
jmp 0x417973
mov dword [esp + 0x50], ebx
cmp eax, ecx
jae 0x41797e
lea edx, [esp + 0x15c]
mov dword [esp + 0x48], edx
cmp dword [ebx + 0x14], ecx
jb 0x41798f
mov eax, dword [ebx]
mov dword [esp + 0x40], eax
jmp 0x417993
mov dword [esp + 0x40], ebx
cmp dword [esp + 0x18c], ecx
jb 0x4179a9
mov edx, dword [esp + 0x178]
mov dword [esp + 0x38], edx
jmp 0x4179b4
lea eax, [esp + 0x178]
mov dword [esp + 0x38], eax
cmp dword [ebx + 0x14], ecx
jb 0x4179c1
mov edx, dword [ebx]
mov dword [esp + 0x30], edx
jmp 0x4179c5
mov dword [esp + 0x30], ebx
cmp dword [esp + 0x138], ecx
jb 0x4179db
mov eax, dword [esp + 0x124]
mov dword [esp + 0x2c], eax
jmp 0x4179e6
lea edx, [esp + 0x124]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x7c]
cmp dword [edx + 0x14], ecx
jb 0x4179f1
mov edx, dword [edx]
mov ebx, dword [esp + 0x140]
cmp dword [esp + 0x154], ecx
jae 0x417a08
lea ebx, [esp + 0x140]
mov eax, dword [esp + 0x90]
cmp dword [eax + 0x14], ecx
jb 0x417a16
mov eax, dword [eax]
cmp dword [esp + 0x11c], ecx
mov ecx, dword [esp + 0x108]
jae 0x417a2d
lea ecx, [esp + 0x108]
push 0x408eac
push 0x408ec0
push edi
push 0
push 0
push 4
push 3
push 2
push 0x408ecc
mov edi, dword [esp + 0x98]
push edi
push 0x408f00
push 0x408f0c
push 0x408f1c
push 0x408f2c
push 0x408eac
push 0x408ec0
mov edi, dword [esp + 0xac]
push edi
push 0
push 0
push 4
push 3
push 2
push 0x408ecc
mov edi, dword [esp + 0xac]
push edi
push 0x408f00
push 0x408f0c
push 0x408f1c
push 0x408f40
push 0x408eac
push 0x408ec0
mov edi, dword [esp + 0xc0]
push edi
push 0
push 0
push 4
push 3
push 2
push 0x408ecc
mov edi, dword [esp + 0xd4]
push edi
push 0x408f00
push 0x408f0c
push 0x408f1c
push 0x408f50
mov edi, dword [esp + 0xe0]
push 0x408774
push 0x408774
push edi
push 0
push 0
mov edi, dword [esp + 0xec]
push 0
push 3
push 1
push 0x408f60
push edi
mov edi, dword [esp + 0xfc]
push 0x408fb0
push 0x408f0c
push 0x408f1c
push 0x408fc0
push 0x408774
push 0x408774
push edi
push 0
push 0
push 4
push 3
push 2
push 0x408fd0
push edx
push 0x40900c
push 0x409018
push 0x409024
push 0x409034
push 0x408774
push 0x408774
push ebx
push 0
push 0
push 4
push 3
push 2
push 0x409044
push eax
push 0x408fb0
push 0x408f0c
push 0x409070
push 0x40894c
push ecx
lea edx, [esp + 0xac0]
call fcn.00419fc0
add esp, 0x154
lea edx, [esp + 0x96c]
mov eax, esi
call fcn.00419760
test eax, eax
jne 0x417bac
mov dword [esp + 0x64], 1
lea ecx, [esp + 0x15c]
call fcn.00420410
lea ecx, [esp + 0x178]
call fcn.00420410
lea ecx, [esp + 0x124]
call fcn.00420410
push fcn.00420410
push 7
push 0x1c
lea eax, [esp + 0x210]
push eax
mov byte [esp + 0x4428], 0x25
call fcn.004c3fa6
push fcn.00420410
push 2
push 0x1c
lea ecx, [esp + 0x1a0]
push ecx
mov byte [esp + 0x4428], 0x24
call fcn.004c3fa6
push fcn.00420410
push 2
push 0x1c
lea edx, [esp + 0x1d8]
push edx
mov byte [esp + 0x4428], 0x20
call fcn.004c3fa6
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x80]
cmp dword [esi + 8], 0
je 0x417c54
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
push eax
push 0
push 0
push 0x409084
push ecx
call fcn.0046e030
add esp, 0x14
cmp dword [esp + 0x11c], 0x10
jb 0x417c6f
mov edx, dword [esp + 0x108]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x11c], 0xf
mov dword [esp + 0x118], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x4418], 0x1c
test ebx, ebx
je 0x417cb1
mov edi, dword [esp + 0x84]
mov eax, ebx
call fcn.00419e80
push ebx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x90]
xor edi, edi
cmp eax, edi
je 0x417cca
push eax
call fcn.00447c00
add esp, 4
mov eax, dword [esi]
cmp eax, edi
je 0x417cd9
push eax
call fcn.0048ce80
add esp, 4
mov eax, edi
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
cmp eax, edi
je 0x417cf0
push eax
call fcn.00447c00
add esp, 4
mov eax, dword [esi]
cmp eax, edi
je 0x417cff
push eax
call fcn.0048ce80
add esp, 4
push esi
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
jmp 0x417d1b
mov esi, dword [esp + 0x18]
jmp 0x417c35
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0xa4]
je 0x417d52
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0xa4]
push ecx
mov ecx, eax
push edi
mov eax, edi
call fcn.0041a250
add esp, 8
mov esi, eax
call fcn.00419e80
mov dword [esp + 0xa4], esi
mov edi, dword [esp + 0x94]
cmp ebx, edi
je 0x417d7f
mov edx, dword [esp + 0x78]
push edx
push edi
mov ecx, ebx
mov eax, edi
call fcn.0041a250
add esp, 8
mov esi, eax
call fcn.00419e80
mov edi, esi
mov dword [esp + 0x94], edi
push fcn.00420410
push 0x18
push 0x1c
lea eax, [esp + 0x2d8]
push eax
mov byte [esp + 0x4428], 4
call fcn.004c3fa6
test ebx, ebx
je 0x417db6
mov eax, ebx
call fcn.00419e80
push ebx
mov ebx, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
call ebx
add esp, 4
jmp 0x417dbc
mov ebx, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov esi, dword [esp + 0xa0]
test esi, esi
je 0x417ddb
mov edi, dword [esp + 0xa4]
mov eax, esi
call fcn.00419e80
push esi
call ebx
add esp, 4
cmp dword [esp + 0x154], 0x10
jb 0x417df2
mov ecx, dword [esp + 0x140]
push ecx
call ebx