Function at 0x406fe0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
mov eax, 0x1198
call fcn.00436ff0
mov esi, esp
mov dword [esi + 0x1180], ebp
call 0x407000
pop eax
mov dword [esi + 0x1184], esp
mov dword [esi + 0x1190], 0xffffffff
mov dword [esi + 0x118c], 0x436370
mov dword [esi + 0x40], ecx
mov dword [esi + 0x28], edx
mov dword [esi + 8], eax
mov eax, dword fs:[0]
mov dword [esi + 0x1188], eax
lea eax, [esi + 0x1188]
mov dword fs:[0], eax
mov dword [esi + 0x1190], 0
push edx
call fcn.00420d10
add esp, 4
mov dword [esi + 0x2c], eax
mov dword [esi + 0x14], edx
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x14]
call fcn.0042d150
mov ecx, dword [esi + 0x14]
test al, al
je 0x4070c0
mov ecx, dword [esi + 0x2c]
mov edx, dword [esi + 0x14]
call fcn.00429ea0
mov ecx, dword [esi + 0x14]
test al, al
je 0x4071ed
push dword [ebp + 8]
call fcn.00420d10
add esp, 4
mov edi, edx
test edx, edx
js 0x409c6d
mov ebx, eax
test edi, edi
je 0x407389
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x40738e
mov ecx, edi
mov edx, 1
call fcn.0040dcf0
ud2
test ecx, ecx
je 0x40713f
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add eax, dword [esi + 0x14]
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
js 0x4070ef
nop word cs:[eax + eax]
nop
mov ecx, edx
cmp ecx, eax
je 0x40713f
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x4070e0
add ecx, 2
cmp bl, 0xe0
jae 0x407102
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
jne 0x4070e6
jmp 0x40713f
cmp bl, 0xed
jne 0x40711f
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x40713f
inc ecx
cmp edx, eax
je 0x4070e2
cmp byte [edx], 0x9f
jbe 0x4070e2
jmp 0x40776d
cmp edx, eax
mov edi, ecx
cmove edi, edx
lea ecx, [edi + 1]
cmp edi, eax
cmove ecx, edi
cmp bl, 0xf0
jb 0x4070e2
lea edx, [ecx + 1]
cmp ecx, eax
cmovne ecx, edx
cmp ecx, eax
jne 0x4070e6
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0x578]
mov dword [esi + 0x98], 0x445750
mov dword [esi + 0x9c], 2
mov dword [esi + 0xa0], 0
mov dword [esi + 0x1190], 0
mov dword [esi + 0x318], edx
lea edx, [esi + 0x98]
mov dword [esi + 0x31c], 0x40ce30
mov dword [esi + 0x578], eax
mov dword [esi + 0x57c], ecx
lea ecx, [esi + 0x318]
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0x7d0]
mov dword [esi + 0xac], 1
call fcn.0040dd40
mov edx, dword [esi + 0x7d0]
mov eax, dword [esi + 0x7d8]
mov dword [esi + 0x318], 0
mov dword [esi + 0x1190], 0x31
lea ecx, [esi + 0x98]
mov dword [esi + 0x14], edx
push eax
call fcn.00414210
add esp, 4
jmp 0x407318
test ecx, ecx
je 0x40726f
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add eax, dword [esi + 0x14]
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
js 0x40721f
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, edx
cmp ecx, eax
je 0x40726f
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x407210
add ecx, 2
cmp bl, 0xe0
jae 0x407232
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
jne 0x407216
jmp 0x40726f
cmp bl, 0xed
jne 0x40724f
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x40726f
inc ecx
cmp edx, eax
je 0x407212
cmp byte [edx], 0x9f
jbe 0x407212
jmp 0x40830d
cmp edx, eax
mov edi, ecx
cmove edi, edx
lea ecx, [edi + 1]
cmp edi, eax
cmove ecx, edi
cmp bl, 0xf0
jb 0x407212
lea edx, [ecx + 1]
cmp ecx, eax
cmovne ecx, edx
cmp ecx, eax
jne 0x407216
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0x578]
mov dword [esi + 0x98], 0x4455d0
mov dword [esi + 0x9c], 2
mov dword [esi + 0xa0], 0
mov dword [esi + 0x1190], 0
mov dword [esi + 0x318], edx
lea edx, [esi + 0x98]
mov dword [esi + 0x31c], 0x40ce30
mov dword [esi + 0x578], eax
mov dword [esi + 0x57c], ecx
lea ecx, [esi + 0x318]
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0x7d0]
mov dword [esi + 0xac], 1
call fcn.0040dd40
mov edx, dword [esi + 0x7d0]
mov eax, dword [esi + 0x7d8]
mov dword [esi + 0x318], 4
mov dword [esi + 0x1190], 0x2f
lea ecx, [esi + 0x98]
mov dword [esi + 0x14], edx
push eax
call fcn.00414210
add esp, 4
cmp dword [esi + 0x7d4], 0
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0x98]
movsd xmm1, qword [esi + 0x318]
movsd xmm2, qword [esi + 0x320]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0xa8], xmm0
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm2
movsd qword [ecx + 4], xmm1
mov dword [esi + 0xb0], eax
mov dword [ecx], 1
je 0x409b30
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x14]
jmp 0x409b28
mov eax, 1
lea ecx, [esi + 0x98]
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa0], 0
mov dword [esi + 0x1190], 1
mov edx, ebx
mov dword [esi + 0x10], ecx
push edi
call fcn.00428230
add esp, 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0xa0]
movsd xmm0, qword [esi + 0x98]
cmp byte [ecx + 0xe], 0
mov dword [esi + 0x90], eax
movsd qword [esi + 0x88], xmm0
je 0x40755c
lea eax, [esi + 0x88]
mov dword [esi + 0x1190], 4
push eax
call fcn.00420d10
add esp, 4
mov ecx, eax
call fcn.0042d150
test al, al
je 0x40780d
mov edx, dword [esi + 0x2c]
lea ecx, [esi + 0x7d0]
push dword [esi + 0x14]
call fcn.00423d10
add esp, 4
movsd xmm1, qword [esi + 0x7e0]
movsd xmm0, qword [esi + 0x7e8]
movsd xmm2, qword [esi + 0x7d0]
lea ecx, [esi + 0x98]
lea edx, [esi + 0x318]
movsd qword [esi + 0x328], xmm1
movsd xmm1, qword [esi + 0x7d8]
movsd qword [esi + 0x330], xmm0
movsd qword [esi + 0x318], xmm2
movsd qword [esi + 0x320], xmm1
call fcn.00424b10
mov eax, dword [esi + 0x98]
mov dword [esi + 4], 5
cmp eax, 5
je 0x4074e6
nop word [eax + eax]
mov dword [esi + 4], eax
lea eax, [esi + 0x9c]
lea edx, [esi + 0x318]
mov ecx, eax
mov eax, dword [eax + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
lea ecx, [esi + 0x98]
mov dword [esi + 0x590], eax
movsd qword [esi + 0x588], xmm0
movsd qword [esi + 0x580], xmm1
movsd qword [esi + 0x578], xmm2
call fcn.00424b10
mov eax, dword [esi + 0x98]
cmp eax, 5
jne 0x407490
mov eax, dword [esi + 0x590]
movsd xmm1, qword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov dword [esi + 0xa40], eax
mov eax, dword [esi + 4]
movsd qword [esi + 0xa30], xmm1
movsd xmm1, qword [esi + 0x588]
movsd qword [esi + 0xa28], xmm0
cmp eax, 5
movsd qword [esi + 0xa38], xmm1
jne 0x407738
mov dword [esi + 0x318], 4
mov dword [esi + 0x1190], 6
lea ecx, [esi + 0x98]
mov edx, str.Invalid_folder_fromInvalid_patha_Display_implementation_returned_an_error_unexpectedly
push 0x13
call fcn.00414210
add esp, 4
jmp 0x4076a7
mov edx, dword [esi + 0x2c]
mov dword [esi + 0x1190], 4
lea ecx, [esi + 0x7d0]
push dword [esi + 0x14]
call fcn.00423d10
add esp, 4
movsd xmm1, qword [esi + 0x7e0]
movsd xmm0, qword [esi + 0x7e8]
movsd xmm2, qword [esi + 0x7d0]
lea ecx, [esi + 0x98]
lea edx, [esi + 0x318]
movsd qword [esi + 0x328], xmm1
movsd xmm1, qword [esi + 0x7d8]
movsd qword [esi + 0x330], xmm0
movsd qword [esi + 0x318], xmm2
movsd qword [esi + 0x320], xmm1
call fcn.00424b10
mov eax, dword [esi + 0x98]
mov dword [esi + 4], 5
cmp eax, 5
je 0x407636
nop dword [eax]
mov dword [esi + 4], eax
lea eax, [esi + 0x9c]
lea edx, [esi + 0x318]
mov ecx, eax
mov eax, dword [eax + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
lea ecx, [esi + 0x98]
mov dword [esi + 0x590], eax
movsd qword [esi + 0x588], xmm0
movsd qword [esi + 0x580], xmm1
movsd qword [esi + 0x578], xmm2
call fcn.00424b10
mov eax, dword [esi + 0x98]
cmp eax, 5
jne 0x4075e0
mov eax, dword [esi + 0x590]
movsd xmm1, qword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov dword [esi + 0xa40], eax
mov eax, dword [esi + 4]
movsd qword [esi + 0xa30], xmm1
movsd xmm1, qword [esi + 0x588]
movsd qword [esi + 0xa28], xmm0
cmp eax, 5
movsd qword [esi + 0xa38], xmm1
jne 0x407703
mov dword [esi + 0x318], 4
mov dword [esi + 0x1190], 5
lea ecx, [esi + 0x98]
mov edx, str.Invalid_folder_fromInvalid_patha_Display_implementation_returned_an_error_unexpectedly
push 0x13
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0x98]
movsd xmm1, qword [esi + 0x318]
movsd xmm2, qword [esi + 0x320]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0xa8], xmm0
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm2
movsd qword [ecx + 4], xmm1
mov dword [esi + 0xb0], eax
mov dword [ecx], 1
jmp 0x409b10
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xa28]
mov edi, dword [esi + 0xa2c]
mov ecx, 0x448f49
add ebx, dword [eax*4 + 0x40a61c]
mov eax, 1
jmp ebx
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0xa28]
mov edi, dword [esi + 0xa2c]
mov ecx, 0x448f49
add ebx, dword [eax*4 + 0x40a608]
mov eax, 1
jmp ebx
mov dword [esi + 0x318], 0
mov dword [esi + 0x1190], 3
lea ecx, [esi + 0x98]
mov edx, str.Path_does_not_exist_Or_you_dont_have_access_Path_is_not_a_directory_
push 0x2d
call fcn.00414210
add esp, 4
jmp 0x408336
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x4c], 4
mov dword [esi + 0x50], 0
mov dword [esi + 0x58], 4
mov dword [esi + 0x5c], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x60], 0
mov ecx, eax
mov eax, dword [eax]
mov ecx, dword [ecx + 4]
mov edi, eax
add edi, 1
mov ebx, ecx
adc ebx, 0
xor edx, edx
or eax, ecx
cmove edi, edx
cmove ebx, edx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x34], edi
mov dword [esi + 0x1c], ebx
test edx, edx
je 0x407917
mov ecx, dword [esi + 0x2c]
mov eax, ecx
add eax, edx
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
js 0x40788f
nop word cs:[eax + eax]
mov ecx, edx
cmp ecx, eax
je 0x4078df
mov bl, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x407880
add ecx, 2
cmp bl, 0xe0
jae 0x4078a2
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
jne 0x407886
jmp 0x4078df
cmp bl, 0xed
jne 0x4078bf
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x4078df
inc ecx
cmp edx, eax
je 0x407882
cmp byte [edx], 0x9f
jbe 0x407882
jmp 0x408392
cmp edx, eax
mov edi, ecx
cmove edi, edx
lea ecx, [edi + 1]
cmp edi, eax
cmove ecx, edi
cmp bl, 0xf0
jb 0x407882
lea edx, [ecx + 1]
cmp ecx, eax
cmovne ecx, edx
cmp ecx, eax
jne 0x407886
mov edx, dword [esi + 0x14]
test edx, edx
js 0x409c74
lea eax, [esi + 0x70]
mov dword [esi + 4], eax
je 0x40791d
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x14]
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov edx, dword [esi + 0x14]
test eax, eax
jne 0x407922
mov ecx, edx
mov edx, 1
call fcn.0040dcf0
ud2
lea eax, [esi + 0x70]
mov dword [esi + 4], eax
mov eax, 1
mov dword [esi + 0x98], eax
mov eax, edx
mov dword [esi + 0x9c], edx
mov dword [esi + 0xa0], 0
mov dword [esi + 0x1190], 0x20
lea ecx, [esi + 0x98]
xor edx, edx
push eax
call fcn.0040d120
add esp, 4
mov ebx, dword [esi + 0x14]
mov eax, dword [esi + 0xa0]
mov ecx, ebx
add ecx, eax
mov dword [esi + 0xa0], ecx
add eax, dword [esi + 0x98]
push ebx
mov edi, dword [esi + 0x2c]
push edi
push eax
call fcn.00438b50
add esp, 0xc
mov eax, dword [esi + 0x10]
mov ecx, edi
mov edx, ebx
mov byte [esi + 0xf], 1
mov dword [esi + 0x1190], 0x21
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
movsd qword [esi + 0x70], xmm0
mov dword [esi + 0x78], eax
call fcn.00429ea0
test al, al
je 0x407b36
mov ecx, dword [esi + 4]
mov edx, 1
mov dword [esi + 0x1190], 0x2d
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esi + 0x4c]
mov dword [esi + 0xa0], eax
movsd qword [esi + 0x98], xmm0
call fcn.0040d1b0
mov ecx, dword [esi + 0x54]
mov eax, dword [esi + 0x4c]
mov edi, dword [esi + 0xa0]
lea edx, [ecx + ecx*2]
inc ecx
mov dword [eax + edx*4 + 8], edi
mov edi, dword [esi + 0x1c]
movsd xmm0, qword [esi + 0x98]
movsd qword [eax + edx*4], xmm0
mov edx, dword [esi + 0x34]
mov dword [esi + 0x54], ecx
xor eax, eax
mov byte [esi + 0xf], 0
mov dword [esi + 0x1190], 0x21
mov ecx, edx
or ecx, edi
lea ecx, [esi + 0x98]
setne al
sub edx, eax
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x2c]
sbb edi, 0
mov dword [esi + 0x1c], edi
push dword [esi + 0x14]
call fcn.0042ce70
add esp, 4
mov eax, dword [esi + 0x9c]
cmp dword [esi + 0x98], 1
mov ebx, dword [esi + 0xa0]
mov edi, 1
je 0x407a77
mov edi, eax
lea eax, [esi + 0xa4]
lea ecx, [esi + 0x7d0]
push 0x254
push eax
push ecx
call fcn.00438b50
mov eax, edi
add esp, 0xc
xor edi, edi
mov dword [esi + 0x318], edi
mov dword [esi + 4], eax
mov dword [esi + 0x31c], eax
mov dword [esi + 0x320], ebx
lea eax, [esi + 0x324]
lea ecx, [esi + 0x7d0]
push 0x254
push ecx
push eax
call fcn.00438b50
add esp, 0xc
test edi, edi
je 0x407c19
mov eax, dword [esi + 4]
lea ecx, [esi + 0x98]
lea edx, [esi + 0x7d0]
mov dword [esi + 0x7d4], ebx
mov dword [esi + 0x94], 1
mov byte [esi + 0x45], 0
mov byte [esi + 0x46], 1
mov dword [esi + 0x1190], 0x22
mov dword [esi + 0x7d0], eax
call fcn.00413d30
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0x98]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xa4]
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0x18], edx
mov dword [esi + 0x34], ecx
mov edi, 4
xor ebx, ebx
jmp 0x408421
mov edx, dword [esi + 0x2c]
lea eax, [esi + 0x318]
mov dword [esi + 0x324], 0
mov dword [esi + 0x334], 0
mov word [esi + 0x338], 0
mov dword [esi + 0x328], 7
mov dword [esi + 0x32c], 0
mov dword [esi + 0x330], 0
mov dword [esi + 0x320], 0
mov dword [esi + 0x31c], 1
mov dword [esi + 0x318], 0x2000000
mov byte [esi + 0xf], 1
lea ecx, [esi + 0x7d0]
push eax
push dword [esi + 0x14]
call fcn.00428520
add esp, 8
cmp dword [esi + 0x7d0], 1
jne 0x407be0
mov edi, dword [esi + 0x7d4]
mov ebx, dword [esi + 0x7d8]
mov al, 1
mov dword [esi + 0xa0], ebx
mov dword [esi + 0x9c], edi
mov dword [esi + 0x98], 1
jmp 0x408039
mov edi, dword [esi + 0x7d4]
lea ecx, [esi + 0x98]
mov edx, edi
call fcn.00428710
push edi
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x98], 1
jne 0x408017
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
mov al, 1
jmp 0x408039
push 0x25c
lea eax, [esi + 0x31c]
push eax
lea eax, [esi + 0x98]
push eax
call fcn.00438b50
add esp, 0xc
mov dword [esi + 0x10], 0
mov dword [esi + 0x24], 0
nop word cs:[eax + eax]
nop dword [eax]
lea ecx, [esi + 0x7d0]
lea edx, [esi + 0x98]
call fcn.004288e0
mov edi, dword [esi + 0x7d0]
cmp edi, 2
je 0x408167
mov eax, dword [esi + 0x7d4]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x7d8]
mov dword [esi + 4], eax
push 0x24c
lea eax, [esi + 0x7dc]
push eax
lea eax, [esi + 0x578]
push eax
call fcn.00438b50
add esp, 0xc
mov eax, 1
cmp edi, 1
je 0x407cc4
push 0x24c
lea eax, [esi + 0x578]
push eax
lea eax, [esi + 0xa28]
push eax
call fcn.00438b50
add esp, 0xc
xor eax, eax
push 0x24c
mov edi, eax
lea eax, [esi + 0xa28]
push eax
lea eax, [esi + 0xc78]
mov ebx, eax
push eax
call fcn.00438b50
add esp, 0xc
push 0x24c
push ebx
lea eax, [esi + 0xec4]
push eax
call fcn.00438b50
add esp, 0xc
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
mov dword [esi + 0x7d0], edi
mov dword [esi + 0x7d8], eax
mov dword [esi + 0x7d4], ebx
push 0x24c
lea eax, [esi + 0xec4]
push eax
lea eax, [esi + 0x7dc]
push eax
call fcn.00438b50
add esp, 0xc
mov dword [esi + 0x18], edi
test edi, edi
lea edi, [esi + 0x7b0]
jne 0x4081e7
push 0x254
lea eax, [esi + 0x7d4]
push eax
lea eax, [esi + 0x578]
push eax
call fcn.00438b50
add esp, 0xc
mov eax, dword [esi + 0x578]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
xor eax, eax
lea ecx, [esi + 0x5a8]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, edi
je 0x407db0
movzx edx, word [ecx]
add ecx, 2
xor ebx, ebx
test dx, dx
setne bl
add eax, ebx
test dx, dx
jne 0x407d80
mov dword [esi + 0x1190], 0x28
jmp 0x407db5
mov eax, 0x104
mov dword [esi + 0x1190], 0x28
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x5a8]
push eax
call fcn.00423870
add esp, 4
mov eax, dword [esi + 0xa30]
mov edi, dword [esi + 0xa28]
mov edx, dword [esi + 8]
mov dword [esi + 0x1190], 0x29
lea ecx, [esi + 0xc78]
push eax
mov dword [esi + 8], edi
push edi
push dword [esi + 4]
call fcn.00428e90
add esp, 0xc
cmp dword [esi + 0xa2c], 0
je 0x407e1c
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 8]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x578]
lock dec dword [eax]
jne 0x407e32
lea ecx, [esi + 0x578]
call fcn.0040c010
cmp dword [esi + 0x7d0], 0
je 0x407e9c
cmp byte [esi + 0x7d4], 2
jb 0x407e9c
mov ecx, dword [esi + 0x7d8]
mov eax, dword [ecx]
mov dword [esi + 4], ecx
mov ecx, dword [ecx + 4]
mov dword [esi + 0x1190], 0x26
push eax
call dword [ecx]
add esp, 4
mov ebx, dword [esi + 4]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x407e8e
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x407e7e
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x407e86
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0xc80]
movsd xmm0, qword [esi + 0xc78]
mov byte [esi + 0x49], 0
mov dword [esi + 0x1190], 0x25
lea ecx, [esi + 0x7d0]
lea edx, [esi + 0x578]
mov dword [esi + 0x580], eax
movsd qword [esi + 0x578], xmm0
push dword [esi + 0x1c]
push dword [esi + 0x34]
call fcn.0040a660
add esp, 8
cmp dword [esi + 0x7d0], 1
je 0x40824e
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1190], 0x24
add eax, dword [esi + 0x7d8]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x24]
adc eax, dword [esi + 0x7dc]
mov dword [esi + 0x24], eax
lea eax, [esi + 0x7d4]
mov edx, dword [eax + 0x14]
movsd xmm0, qword [eax + 0xc]
mov ecx, eax
mov eax, dword [eax + 0x20]
movsd qword [esi + 0xa28], xmm0
mov dword [esi + 0xa30], edx
movsd xmm0, qword [ecx + 0x18]
mov dword [esi + 0x580], eax
lea ecx, [esi + 0x58]
mov dword [esi + 8], edx
mov eax, dword [esi + 0xa28]
movsd qword [esi + 0x578], xmm0
mov dword [esi + 4], eax
call fcn.0040d1b0
mov edi, dword [esi + 0x60]
mov ebx, dword [esi + 8]
lea eax, [edi + edi*2]
lea ecx, [ebx*4]
shl eax, 2
lea ecx, [ecx + ecx*2]
add eax, dword [esi + 0x58]
push ecx
push dword [esi + 4]
push eax
call fcn.00438b50
add esp, 0xc
mov eax, dword [esi + 0x578]
mov edx, dword [esi + 0x580]
add edi, ebx
lea ecx, [esi + 0x4c]
mov dword [esi + 0xa30], 0
mov dword [esi + 0x60], edi
mov dword [esi + 8], eax
mov dword [esi + 0x18], edx
call fcn.0040d1b0
mov edi, dword [esi + 0x54]
mov ebx, dword [esi + 0x18]
lea eax, [edi + edi*2]
lea ecx, [ebx*4]
shl eax, 2
lea ecx, [ecx + ecx*2]
add eax, dword [esi + 0x4c]
push ecx
push dword [esi + 8]
push eax
call fcn.00438b50
add esp, 0xc
mov dword [esi + 0x580], 0
add edi, ebx
cmp dword [esi + 0x57c], 0
mov dword [esi + 0x54], edi
je 0x407ff4
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 8]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0xa2c], 0
mov ebx, dword [esi + 4]
je 0x407c50
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x407c50
mov ebx, dword [esi + 0xa0]
xor edi, edi
lea eax, [esi + 0xa4]
push 0x44
push eax
lea eax, [esi + 0x318]
push eax
call fcn.00438b50
add esp, 0xc
xor eax, eax
mov ecx, dword [esi + 0x318]
test al, al
mov dword [esi + 0x578], edi
mov dword [esi + 0x57c], ebx
mov dword [esi + 0x580], ecx
je 0x4080e0
lea ecx, [esi + 0x98]
lea edx, [esi + 0x318]
mov dword [esi + 0x31c], ebx
mov dword [esi + 0x318], edi
mov byte [esi + 0xf], 1
call fcn.00413d30
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0xa0]
mov eax, dword [esi + 0x98]
xor ebx, ebx
cmp dword [esi + 0x74], 0
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov edx, dword [esi + 0xa4]
mov ecx, dword [esi + 0xa8]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x10], ecx
mov edx, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
mov dword [esi + 0x18], edx
mov dword [esi + 0x34], ecx
je 0x40815d
mov edi, dword [esi + 0x70]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, 4
jmp 0x408421
mov ecx, dword [esi + 0x580]
mov eax, dword [esi + 0x57c]
mov dword [esi + 0x1190], 0x2a
mov dword [esi + 0x24], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x10], eax
mov edx, dword [ecx + 8]
movsd xmm0, qword [ecx]
lea ecx, [esi + 0x58]
mov dword [esi + 0xa0], edx
mov edx, 1
movsd qword [esi + 0x98], xmm0
call fcn.0040d1b0
mov edi, dword [esi + 0x60]
mov edx, dword [esi + 0x58]
mov ecx, dword [esi + 0xa0]
mov ebx, 4
mov dword [esi + 4], 0
mov dword [esi + 0x18], 0
lea eax, [edi + edi*2]
inc edi
mov dword [edx + eax*4 + 8], ecx
movsd xmm0, qword [esi + 0x98]
movsd qword [edx + eax*4], xmm0
mov dword [esi + 0x60], edi
jmp 0x408538
mov edi, 4
jmp 0x408421
push dword [esi + 0x98]
call sub.KERNEL32.dll_FindClose
mov eax, dword [esi + 0x9c]
lock dec dword [eax]
jne 0x408188
lea ecx, [esi + 0x9c]
call fcn.0040c010
cmp dword [esi + 0x318], 0
je 0x408523
cmp byte [esi + 0x31c], 2
jb 0x408523
mov ecx, dword [esi + 0x320]
mov eax, dword [ecx]
mov dword [esi + 4], ecx
mov ecx, dword [ecx + 4]
mov dword [esi + 0x1190], 0x2b
push eax
call dword [ecx]
add esp, 4
mov ebx, dword [esi + 4]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x408515
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x408505
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x40850d
mov eax, dword [esi + 4]
lea ecx, [esi + 0xa28]
lea edx, [esi + 0x68]
mov dword [esi + 0x68], ebx
mov byte [esi + 0x47], 0
mov byte [esi + 0x48], 1
mov dword [esi + 0x1190], 0x27
mov dword [esi + 0x6c], eax
call fcn.00413d30
mov eax, dword [esi + 0xa28]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0xa2c]
mov dword [esi + 4], eax
mov eax, dword [esi + 0xa30]
mov dword [esi + 8], eax
mov eax, dword [esi + 0xa34]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0xa38]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xa3c]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0xa40]
jmp 0x40828a
mov eax, dword [esi + 0x7d4]
mov dword [esi + 0x2c], eax
mov eax, dword [esi + 0x7d8]
mov dword [esi + 4], eax
mov eax, dword [esi + 0x7dc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x7e0]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x7e4]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x7e8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x7ec]
mov dword [esi + 0x34], eax
push dword [esi + 0x98]
call sub.KERNEL32.dll_FindClose
mov eax, dword [esi + 0x9c]
lock dec dword [eax]
jne 0x4082ae
lea ecx, [esi + 0x9c]
call fcn.0040c010
cmp dword [esi + 0x318], 0
je 0x40841b
cmp byte [esi + 0x31c], 2
jb 0x40841b
mov ecx, dword [esi + 0x320]
mov eax, dword [ecx]
mov dword [esi + 0x14], ecx
mov ecx, dword [ecx + 4]
mov dword [esi + 0x1190], 0x2c
push eax
call dword [ecx]
add esp, 4
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x40840d
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x4083fd
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x408405
mov dword [esi + 0x318], 4
mov dword [esi + 0x1190], 2
lea ecx, [esi + 0x98]
mov edx, 0x4455b5
push 0x18
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0x98]
movsd xmm1, qword [esi + 0x318]
movsd xmm2, qword [esi + 0x320]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0xa8], xmm0
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm2
movsd qword [ecx + 4], xmm1
mov dword [esi + 0xb0], eax
mov dword [ecx], 1
jmp 0x409b30
mov dword [esi + 0x98], 7
mov dword [esi + 0x1190], 0x1f
lea ecx, [esi + 0x318]
mov edx, 0x4455f3
push 0xc
call fcn.00414210
add esp, 4
mov ecx, dword [esi + 0x31c]
mov edx, dword [esi + 0x320]
mov eax, dword [esi + 0x318]
mov dword [esi + 0x2c], 7
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x9c]
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0xa0]
mov dword [esi + 0x10], eax
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0xa4]
mov dword [esi + 8], edx
mov dword [esi + 0x24], ecx
jmp 0x407b2a
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esi + 0x58]
mov ebx, dword [esi + 0x60]
shl ebx, 2
mov dword [esi + 0x1c], edi
lea ebx, [ebx + ebx*2]
test ebx, ebx
jne 0x40843a
jmp 0x408457
add edi, 0xc
add ebx, 0xfffffff4
test ebx, ebx
je 0x408457
cmp dword [edi + 4], 0
je 0x408430
mov eax, dword [edi]
mov dword [esi + 0x14], eax
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x14]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x408430
cmp dword [esi + 0x5c], 0
je 0x40846d
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x1c]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x54]
mov edi, dword [esi + 0x4c]
shl eax, 2
mov dword [esi + 0x1c], edi
lea ebx, [eax + eax*2]
test ebx, ebx
jne 0x40849a
jmp 0x4084b7
add edi, 0xc
add ebx, 0xfffffff4
test ebx, ebx
je 0x4084b7
cmp dword [edi + 4], 0
je 0x408490
mov eax, dword [edi]
mov dword [esi + 0x14], eax
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x14]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
jmp 0x408490
cmp dword [esi + 0x50], 0
je 0x4084cd
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x1c]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x2c]
mov edi, dword [esi + 4]
mov edx, dword [esi + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov edi, dword [esi + 0x24]
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edx
mov edi, dword [esi + 0x18]
mov edx, dword [esi + 0x34]
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], edx
mov dword [eax], 1
jmp 0x409b10
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
mov edi, dword [esi + 0x60]
mov ebx, dword [esi + 0x4c]
mov dword [esi + 0x18], eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x5c]
mov dword [esi + 0x3c], edi
mov dword [esi + 0x578], ebx
mov dword [esi + 0x64], edx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x2f8], eax
mov eax, dword [esi + 0x24]
mov dword [esi + 0x84], ecx
mov dword [esi + 0x2fc], eax
mov dword [esi + 0x300], edx
mov dword [esi + 0x304], ecx
mov dword [esi + 0x308], edi
mov edi, dword [esi + 0x18]
mov eax, dword [esi + 4]
mov dword [esi + 0x30c], ebx
mov dword [esi + 0x310], edi
mov dword [esi + 0x314], eax
lea eax, [eax + eax*2]
mov dword [esi + 0x57c], edi
mov dword [esi + 0x580], ebx
lea eax, [ebx + eax*4]
mov dword [esi + 8], eax
mov dword [esi + 0x584], eax
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0xe]
mov byte [esi + 0x3b], al
lea eax, [esi + 0x318]
mov dword [esi + 0x80], eax
mov eax, ebx
cmp eax, dword [esi + 8]
jne 0x4085ee
jmp 0x4089d9
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x34]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 4]
mov eax, ecx
cmp eax, dword [esi + 8]
je 0x4089d9
lea ecx, [eax + 0xc]
mov dword [esi + 0x580], ecx
mov edx, dword [eax]
movsd xmm0, qword [eax + 4]
test edx, edx
movsd qword [esi + 0x98], xmm0
je 0x4089e9
mov edi, dword [esi + 0x9c]
mov eax, dword [esi + 0x98]
mov dword [esi + 0xec4], edx
mov dword [esi + 4], ecx
mov dword [esi + 0x1190], 0x1a
lea ecx, [esi + 0x318]
mov dword [esi + 0x34], edx
mov dword [esi + 0xec8], eax
mov dword [esi + 0xecc], edi
push edi
call fcn.00423d10
add esp, 4
mov edx, dword [esi + 0x2c]
lea ecx, [esi + 0x98]
push dword [esi + 0x14]
call fcn.00423d10
add esp, 4
lea eax, [esi + 0x98]
lea ecx, [esi + 0x7d0]
lea edx, [esi + 0x318]
push eax
call fcn.004241f0
add esp, 4
cmp byte [esi + 0x7ec], 2
je 0x40892f
movsd xmm1, qword [esi + 0x7e0]
movsd xmm0, qword [esi + 0x7e8]
movsd xmm2, qword [esi + 0x7d0]
lea ecx, [esi + 0x98]
movsd qword [esi + 0xa8], xmm1
movsd xmm1, qword [esi + 0x7d8]
movsd qword [esi + 0xb0], xmm0
movsd qword [esi + 0x98], xmm2
movsd qword [esi + 0xa0], xmm1
call fcn.004243b0
mov dword [esi + 0x10], edx
mov ecx, eax
test eax, eax
je 0x40892f
lea eax, [esi + 0x88]
push eax
mov dword [esi + 0x24], ecx
call fcn.00420d10
mov ebx, dword [esi + 0x24]
add esp, 4
mov edi, edx
lea ecx, [esi + 0xc78]
mov edx, eax
push dword [esi + 0x10]
push ebx
push edi
call fcn.00428e90
add esp, 0xc
lea eax, [esi + 0xc78]
mov byte [esi + 0x33], 1
mov dword [esi + 0x1190], 0x1b
push eax
call fcn.00420d10
add esp, 4
mov ecx, eax
mov byte [esi + 0x33], 1
call fcn.0042d150
test al, al
je 0x408779
cmp dword [esi + 0xc7c], 0
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov ecx, dword [esi + 4]
je 0x4088b6
mov edi, dword [esi + 0xc78]
call sub.KERNEL32.dll_GetProcessHeap
push edi
mov edi, dword [esi + 0x18]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 4]
cmp dword [esi + 0xec8], 0
jne 0x4085d0
jmp 0x4085e3
cmp byte [esi + 0x3b], 0
je 0x4087fd
mov eax, dword [esi + 0xc80]
movsd xmm0, qword [esi + 0xc78]
mov dword [esi + 0x1190], 0x1c
mov dword [esi + 0xa30], eax
lea eax, [esi + 0xa28]
movsd qword [esi + 0xa28], xmm0
push eax
call fcn.00420d10
add esp, 4
mov edi, edx
lea ecx, [esi + 0x98]
mov edx, 1
push edi
push eax
call fcn.00429360
add esp, 8
mov eax, dword [esi + 0x98]
cmp al, 3
je 0x408850
mov ecx, dword [esi + 0x9c]
lea edx, [esi + 0x318]
mov dword [esi + 0x318], eax
mov dword [esi + 0x31c], ecx
lea ecx, [esi + 0x98]
call fcn.00413d30
jmp 0x4088eb
mov eax, dword [esi + 0xc80]
movsd xmm0, qword [esi + 0xc78]
mov dword [esi + 0x1190], 0x1d
mov dword [esi + 0xa30], eax
lea eax, [esi + 0xa28]
movsd qword [esi + 0xa28], xmm0
push eax
call fcn.00420d10
add esp, 4
mov edi, edx
lea ecx, [esi + 0x98]
xor edx, edx
push edi
push eax
call fcn.00429360
add esp, 8
mov eax, dword [esi + 0x98]
cmp al, 3
jne 0x4088c8
mov edi, 0xc
cmp dword [esi + 0xa2c], 0
je 0x408872
mov ebx, dword [esi + 0xa28]
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
movsd xmm0, qword [esi + 0x328]
movsd xmm2, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
cmp edi, 0xc
lea eax, [esi + 0x7d4]
mov dword [esi + 0x7d0], edi
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
jne 0x408aa3
mov edi, dword [esi + 0x18]
cmp dword [esi + 0xec8], 0
jne 0x4085d0
jmp 0x4085e3
mov ecx, dword [esi + 0x9c]
lea edx, [esi + 0x318]
mov dword [esi + 0x318], eax
mov dword [esi + 0x31c], ecx
lea ecx, [esi + 0x98]
call fcn.00413d30
lea eax, [esi + 0x9c]
mov edi, dword [esi + 0x98]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [esi + 0x318], xmm0
movsd qword [esi + 0x320], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [esi + 0x328], xmm1
cmp dword [esi + 0xa2c], 0
jne 0x40885e
jmp 0x408872
lea ecx, [esi + 0x98]
call fcn.00413c80
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0xa8]
movsd xmm2, qword [esi + 0x98]
movsd xmm1, qword [esi + 0xa0]
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm2
mov dword [ecx], 1
cmp dword [esi + 0xec8], 0
je 0x408992
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x34]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0x3c]
cmp ecx, dword [esi + 8]
jne 0x4089b7
jmp 0x408a3e
cmp edi, dword [esi + 8]
mov ecx, edi
je 0x408a2f
mov ebx, dword [ecx]
lea edi, [ecx + 0xc]
test ebx, ebx
je 0x408a27
cmp dword [ecx + 4], 0
je 0x4089b0
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x3c]
jmp 0x4089b0
mov eax, dword [esi + 0x3c]
test edi, edi
jne 0x408b3a
jmp 0x408b4b
cmp ecx, dword [esi + 8]
mov eax, dword [esi + 0x3c]
jne 0x408a01
jmp 0x408b36
cmp edi, dword [esi + 8]
mov ecx, edi
je 0x408b27
mov ebx, dword [ecx]
lea edi, [ecx + 0xc]
test ebx, ebx
je 0x408b1f
cmp dword [ecx + 4], 0
je 0x4089f6
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x3c]
jmp 0x4089f6
mov dword [esi + 0x580], edi
jmp 0x408a38
mov ecx, dword [esi + 8]
mov dword [esi + 0x580], ecx
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
test edi, edi
je 0x408a53
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x3c]
mov ebx, dword [esi + 0x64]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*4]
mov dword [esi + 0x14], ecx
nop
cmp ebx, ecx
je 0x408a86
mov eax, ebx
add ebx, 0xc
cmp dword [eax + 4], 0
je 0x408a60
mov edi, dword [eax]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov ecx, dword [esi + 0x14]
cmp ebx, ecx
jne 0x408a64
cmp dword [esi + 0x84], 0
mov eax, dword [esi + 0x28]
je 0x409b13
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x64]
jmp 0x409b08
mov eax, dword [esi + 0x7e8]
movsd xmm1, qword [esi + 0x7d0]
movsd xmm0, qword [esi + 0x7e0]
movsd xmm2, qword [esi + 0x7d8]
mov edx, dword [esi + 0x80]
mov ecx, dword [esi + 0x40]
mov edi, dword [esi + 0x18]
movsd qword [esi + 0x318], xmm1
movsd qword [esi + 0x320], xmm2
movsd qword [esi + 0x328], xmm0
mov dword [esi + 0x330], eax
mov dword [esi + 0xb0], eax
movsd qword [esi + 0xa8], xmm0
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0x98], xmm1
mov eax, dword [edx + 0x18]
movsd xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
jmp 0x408961
mov dword [esi + 0x580], edi
jmp 0x408b30
mov ecx, dword [esi + 8]
mov dword [esi + 0x580], ecx
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
test edi, edi
je 0x408b4b
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x64]
mov ecx, dword [esi + 0x84]
lea eax, [eax + eax*2]
mov dword [esi + 0x34], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0xa28], edi
mov dword [esi + 0xa2c], ecx
mov ecx, dword [ebp + 0xc]
lea eax, [edi + eax*4]
mov dword [esi + 0xa30], edi
mov dword [esi + 0xa34], eax
mov dl, byte [ecx + 0xc]
mov cl, byte [ecx + 0xd]
mov byte [esi + 0x84], cl
mov byte [esi + 0x3b], dl
cmp edi, eax
je 0x40980a
lea eax, [edi + 0xc]
mov dword [esi + 0xa30], eax
mov dword [esi + 0x3c], eax
mov eax, dword [edi]
movsd xmm0, qword [edi + 4]
test eax, eax
movsd qword [esi + 0x98], xmm0
je 0x409bcc
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0x9c]
mov dword [esi + 0x4c], eax
lea eax, [esi + 0x88]
mov dword [esi + 0x1190], 8
mov dword [esi + 0x54], edx
mov dword [esi + 0x50], ecx
push eax
call fcn.00420d10
add esp, 4
mov ebx, eax
mov edi, edx
test edx, edx
js 0x409c85
test edi, edi
je 0x408c12
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
jne 0x408c17
jmp 0x4070b2
mov eax, 1
mov dword [esi + 0x98], eax
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa0], 0
mov dword [esi + 0x1190], 9
lea ecx, [esi + 0x98]
mov edx, ebx
push edi
call fcn.00428230
add esp, 4
mov eax, dword [esi + 0xa0]
movsd xmm0, qword [esi + 0x98]
mov edi, dword [esi + 0x54]
mov edx, dword [esi + 0x4c]
mov dword [esi + 0x1190], 0xa
lea ecx, [esi + 0x318]
mov dword [esi + 0x60], eax
movsd qword [esi + 0x58], xmm0
push edi
call fcn.00423d10
add esp, 4
mov edx, dword [esi + 0x2c]
lea ecx, [esi + 0x98]
push dword [esi + 0x14]
call fcn.00423d10
add esp, 4
lea eax, [esi + 0x98]
lea ecx, [esi + 0x7d0]
lea edx, [esi + 0x318]
push eax
call fcn.004241f0
add esp, 4
cmp byte [esi + 0x7ec], 2
je 0x409b79
movsd xmm1, qword [esi + 0x7e0]
movsd xmm0, qword [esi + 0x7e8]
movsd xmm2, qword [esi + 0x7d0]
lea ecx, [esi + 0x98]
movsd qword [esi + 0xa8], xmm1
movsd xmm1, qword [esi + 0x7d8]
movsd qword [esi + 0xb0], xmm0
movsd qword [esi + 0x98], xmm2
movsd qword [esi + 0xa0], xmm1
call fcn.004243b0
mov dword [esi + 4], edx
mov ecx, eax
test eax, eax
je 0x409b79
lea eax, [esi + 0x58]
push eax
mov dword [esi + 8], ecx
call fcn.00420d10
mov ebx, dword [esi + 8]
add esp, 4
mov edi, edx
lea ecx, [esi + 0x70]
mov edx, eax
push dword [esi + 4]
push ebx
push edi
call fcn.00428e90
add esp, 0xc
mov al, 1
mov dword [esi + 4], 0
test al, 1
je 0x4097b4
nop dword [eax + eax]
mov eax, dword [esi + 4]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x1190], 0xb
mov byte [esi + 2], al
mov byte [esi + 3], al
lea eax, [esi + 0x4c]
push eax
call fcn.00420d10
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [esi + 8], edx
mov dword [esi + 0x24], ecx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
call fcn.0042d150
test al, al
je 0x408e70
lea eax, [esi + 0x31c]
mov dword [esi + 0x324], 0
mov edx, dword [esi + 0x24]
lea ecx, [esi + 0x578]
mov word [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov eax, dword [esi + 0x10]
mov dword [esi + 0x328], 7
mov dword [esi + 0x32c], 0
mov dword [esi + 0x330], 0
mov dword [esi + 0x320], 0
mov dword [esi + 0x31c], 1
mov dword [esi + 0x318], 0x2000000
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
lea eax, [esi + 0x318]
push eax
push dword [esi + 8]
call fcn.00428520
add esp, 8
cmp dword [esi + 0x578], 1
jne 0x4090c3
mov eax, dword [esi + 0x57c]
mov edx, dword [esi + 0x580]
mov dword [esi + 0xa0], edx
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], 1
mov edi, dword [esi + 8]
cmp al, 2
jae 0x4090fd
jmp 0x4091e4
mov edi, dword [esi + 8]
test edi, edi
je 0x408f00
mov ecx, dword [esi + 0x24]
mov eax, ecx
add eax, edi
movzx ebx, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
js 0x408ea0
nop dword [eax]
mov ecx, edx
cmp ecx, eax
je 0x408f00
movzx ebx, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x408e90
add ecx, 2
cmp bl, 0xe0
jae 0x408eb3
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
jne 0x408e96
jmp 0x408f00
cmp bl, 0xed
jne 0x408ed0
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x408f00
inc ecx
cmp edx, eax
je 0x408e92
cmp byte [edx], 0x9f
jbe 0x408e92
jmp 0x4093b4
cmp edx, eax
mov edi, ecx
cmove edi, edx
lea ecx, [edi + 1]
cmp edi, eax
cmove ecx, edi
cmp bl, 0xf0
jb 0x408eec
lea edx, [ecx + 1]
cmp ecx, eax
cmovne ecx, edx
mov edi, dword [esi + 8]
cmp ecx, eax
jne 0x408e96
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x24]
mov dword [esi + 0x98], 0x445750
mov dword [esi + 0x9c], 2
mov dword [esi + 0xa0], 0
lea ecx, [esi + 0xec4]
lea edx, [esi + 0x98]
mov dword [esi + 0x1190], 0xb
mov dword [esi + 0x68], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x6c], edi
mov dword [esi + 0x318], eax
lea eax, [esi + 0x318]
mov dword [esi + 0x31c], 0x40ce30
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xac], 1
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
call fcn.0040dd40
mov edx, dword [esi + 0xec4]
mov eax, dword [esi + 0xecc]
mov dword [esi + 0x98], 0
mov dword [esi + 0x1190], 0x11
lea ecx, [esi + 0x578]
mov dword [esi + 8], edx
push eax
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov ecx, dword [esi + 0xa4]
lea edx, [esi + 0x31c]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
cmp dword [esi + 0xec8], 0
mov dword [esi + 0x318], ecx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
je 0x409026
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 8]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov dword [esi + 0x18], 0
mov ecx, 1
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
je 0x409067
cmp eax, 1
jne 0x409067
mov dword [esi + 0x10], ecx
lea ecx, [esi + 0x7d4]
mov dword [esi + 8], ebx
mov dword [esi + 4], edi
mov dword [esi + 0x1190], 0x15
call fcn.004013f0
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 8]
mov eax, dword [esi + 0x18]
movsd xmm0, qword [esi + 0x578]
movsd xmm1, qword [esi + 0x580]
test ecx, ecx
lea edx, [esi + 0x7e0]
mov dword [esi + 0x7d0], ecx
mov dword [esi + 0x7d4], eax
mov dword [esi + 0x7d8], edi
mov dword [esi + 0x7dc], ebx
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
jne 0x409815
add dword [esi + 0x34], edi
mov al, 1
mov dword [esi + 4], eax
adc dword [esi + 0x1c], ebx
xor eax, eax
test al, 1
jne 0x408d50
jmp 0x4097b4
mov edi, dword [esi + 0x57c]
lea ecx, [esi + 0x98]
mov edx, edi
call fcn.00428710
push edi
call sub.KERNEL32.dll_CloseHandle
cmp dword [esi + 0x98], 1
jne 0x40913c
movzx eax, byte [esi + 0x9c]
mov edx, dword [esi + 0xa0]
mov edi, dword [esi + 8]
cmp al, 2
jb 0x4091e4
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esi + 0x1190], 0x14
push eax
mov dword [esi + 0x18], edx
call dword [ecx]
add esp, 4
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx + 4]
cmp dword [eax + 4], 0
je 0x4091d3
mov edi, dword [ebx]
cmp dword [eax + 8], 9
jae 0x4091c3
call sub.KERNEL32.dll_GetProcessHeap
push edi
jmp 0x4091cb
mov edx, dword [esi + 0xb8]
mov edi, dword [esi + 8]
test edx, 0x400
sete al
test dword [esi + 0xd4], 0x20000000
sete cl
test dl, 0x10
jne 0x4091e4
or al, cl
je 0x4091e4
cmp byte [esi + 0x3b], 0
jne 0x4096c3
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
lea eax, [esi + 0x70]
push eax
call fcn.00420d10
add esp, 4
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 4]
mov byte [esi + 2], cl
mov byte [esi + 3], cl
mov ecx, eax
call fcn.0042d150
test al, al
je 0x4096c3
cmp byte [esi + 0x84], 0
je 0x4094d2
xor edi, edi
xor ebx, ebx
xor ecx, ecx
jmp 0x409067
call sub.KERNEL32.dll_GetProcessHeap
push dword [edi - 4]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
call sub.KERNEL32.dll_GetProcessHeap
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov edi, dword [esi + 8]
test edi, edi
je 0x409270
mov ecx, dword [esi + 0x24]
mov eax, ecx
add eax, edi
movzx ebx, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
js 0x409210
nop dword [eax]
mov ecx, edx
cmp ecx, eax
je 0x409270
movzx ebx, byte [ecx]
lea edx, [ecx + 1]
test bl, bl
jns 0x409200
add ecx, 2
cmp bl, 0xe0
jae 0x409223
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
jne 0x409206
jmp 0x409270
cmp bl, 0xed
jne 0x409240
cmp edx, eax
cmove ecx, edx
cmp ecx, eax
je 0x409270
inc ecx
cmp edx, eax
je 0x409202
cmp byte [edx], 0x9f
jbe 0x409202
jmp 0x409443
cmp edx, eax
mov edi, ecx
cmove edi, edx
lea ecx, [edi + 1]
cmp edi, eax
cmove ecx, edi
cmp bl, 0xf0
jb 0x40925c
lea edx, [ecx + 1]
cmp ecx, eax
cmovne ecx, edx
mov edi, dword [esi + 8]
cmp ecx, eax
jne 0x409206
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esi + 0x24]
mov dword [esi + 0x98], 0x445774
mov dword [esi + 0x9c], 2
mov dword [esi + 0xa0], 0
lea ecx, [esi + 0xec4]
lea edx, [esi + 0x98]
mov dword [esi + 0x1190], 0xb
mov dword [esi + 0x68], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x6c], edi
mov dword [esi + 0x318], eax
lea eax, [esi + 0x318]
mov dword [esi + 0x31c], 0x40ce30
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xac], 1
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
call fcn.0040dd40
mov edx, dword [esi + 0xec4]
mov eax, dword [esi + 0xecc]
mov dword [esi + 0x98], 5
mov dword [esi + 0x1190], 0xf
lea ecx, [esi + 0x578]
mov dword [esi + 8], edx
push eax
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov ecx, dword [esi + 0xa4]
lea edx, [esi + 0x31c]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
cmp dword [esi + 0xec8], 0
mov dword [esi + 0x318], ecx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
je 0x409396
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 8]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov dword [esi + 0x18], 5
mov ecx, 1
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
jne 0x40903b
jmp 0x409067
mov dword [esi + 0x98], 0
mov dword [esi + 0x1190], 0x13
lea ecx, [esi + 0x578]
mov edx, 0x445723
push 0x2d
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov ecx, dword [esi + 0xa4]
lea edx, [esi + 0x31c]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
mov dword [esi + 0x318], ecx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
jmp 0x409026
mov dword [esi + 0x98], 5
mov dword [esi + 0x1190], 0x12
lea ecx, [esi + 0x578]
mov edx, str.Path_is_not_a_file_
push 0x13
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov ecx, dword [esi + 0xa4]
lea edx, [esi + 0x31c]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
mov dword [esi + 0x318], ecx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
jmp 0x409396
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
lea eax, [esi + 0x70]
push eax
call fcn.00420d10
add esp, 4
mov dword [esi + 0x64], eax
test edx, edx
mov dword [esi + 0x80], edx
je 0x40956f
mov edi, dword [esi + 0x64]
mov edx, edi
add edx, dword [esi + 0x80]
movzx ecx, byte [edi]
lea ebx, [edi + 1]
test cl, cl
js 0x40951f
mov edi, ebx
cmp edi, edx
je 0x40956f
movzx ecx, byte [edi]
lea ebx, [edi + 1]
test cl, cl
jns 0x40950f
add edi, 2
cmp cl, 0xe0
jae 0x409532
cmp ebx, edx
cmove edi, ebx
cmp edi, edx
jne 0x409515
jmp 0x40956f
cmp cl, 0xed
jne 0x40954f
cmp ebx, edx
cmove edi, ebx
cmp edi, edx
je 0x40956f
inc edi
cmp ebx, edx
je 0x409511
cmp byte [ebx], 0x9f
jbe 0x409511
jmp 0x4096c3
cmp ebx, edx
mov eax, edi
cmove eax, ebx
lea edi, [eax + 1]
cmp eax, edx
cmove edi, eax
cmp cl, 0xf0
jb 0x409511
lea eax, [edi + 1]
cmp edi, edx
cmovne edi, eax
cmp edi, edx
jne 0x409515
cmp dword [esi + 0x64], 0
mov dword [esi + 0x1190], 0xb
je 0x4096c3
mov eax, dword [esi + 0x64]
mov dword [esi + 0x98], 0x445784
mov dword [esi + 0x9c], 2
mov dword [esi + 0xa0], 0
lea ecx, [esi + 0xec4]
lea edx, [esi + 0x98]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x6c], eax
lea eax, [esi + 0x68]
mov dword [esi + 0x318], eax
lea eax, [esi + 0x318]
mov dword [esi + 0x31c], 0x40ce30
mov dword [esi + 0xa8], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xac], 1
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
call fcn.0040dd40
mov edx, dword [esi + 0xec4]
mov eax, dword [esi + 0xecc]
mov dword [esi + 0x98], 2
mov dword [esi + 0x1190], 0xd
lea ecx, [esi + 0x578]
mov dword [esi + 8], edx
push eax
call fcn.00414210
add esp, 4
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
mov ecx, dword [esi + 0xa4]
lea edx, [esi + 0x31c]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
cmp dword [esi + 0xec8], 0
mov dword [esi + 0x318], ecx
mov dword [edx + 8], eax
movsd qword [edx], xmm0
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd xmm1, qword [esi + 0x320]
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
je 0x4096a5
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 8]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov dword [esi + 0x18], 2
mov ecx, 1
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
jne 0x40903b
jmp 0x409067
mov eax, dword [esi + 0x10]
mov dword [esi + 0x1190], 0xb
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
mov byte [esi + 2], al
mov byte [esi + 3], al
lea eax, [esi + 0x70]
push eax
call fcn.00420d10
add esp, 4
mov edi, edx
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 4]
mov byte [esi + 2], cl
mov byte [esi + 3], cl
lea ecx, [esi + 0x318]
push edi
push eax
push ebx
call fcn.0042ee90
add esp, 0xc
cmp dword [esi + 0x318], 1
jne 0x409794
mov eax, dword [esi + 0x10]
movsd xmm0, qword [esi + 0x31c]
lea ecx, [esi + 0x98]
lea edx, [esi + 0x578]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
movsd qword [esi + 0x578], xmm0
mov byte [esi + 2], al
mov byte [esi + 3], al
call fcn.00413d30
lea ecx, [esi + 0xa4]
mov eax, dword [esi + 0x98]
mov edi, dword [esi + 0x9c]
mov ebx, dword [esi + 0xa0]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
mov ecx, 1
mov dword [esi + 0x18], eax
movsd qword [esi + 0x578], xmm0
movsd qword [esi + 0x580], xmm1
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
jne 0x40903b
jmp 0x409067
mov edi, dword [esi + 0x320]
mov ebx, dword [esi + 0x324]
xor ecx, ecx
mov eax, dword [esi + 0x10]
cmp byte [esi + 4], 0
jne 0x40903b
jmp 0x409067
cmp dword [esi + 0x74], 0
je 0x4097cb
mov edi, dword [esi + 0x70]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x5c], 0
je 0x4097e2
mov edi, dword [esi + 0x58]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x50], 0
je 0x4097f9
mov edi, dword [esi + 0x4c]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0xa34]
mov edi, dword [esi + 0x3c]
cmp edi, eax
jne 0x408b9a
mov eax, dword [esi + 0xa30]
jmp 0x409bcf
lea eax, [esi + 0x7d4]
mov dword [esi + 0x98], 0x4483a0
mov dword [esi + 0x9c], 1
mov dword [esi + 0xa0], 0
mov dword [esi + 0x578], 1
mov dword [esi + 0x57c], 0
mov dword [esi + 0x580], 0
mov dword [esi + 0x1190], 0x19
mov edx, 0x4456e8
mov ecx, eax
mov eax, dword [eax + 0x18]
movsd xmm0, qword [ecx + 0x10]
movsd xmm2, qword [ecx]
movsd xmm1, qword [ecx + 8]
lea ecx, [esi + 0xec4]
mov dword [esi + 0x330], eax
lea eax, [esi + 0x318]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x68]
movsd qword [esi + 0x328], xmm0
movsd qword [esi + 0x320], xmm1
movsd qword [esi + 0x318], xmm2
mov dword [esi + 0xc78], eax
lea eax, [esi + 0x578]
mov dword [esi + 0xc7c], 0x40b750
mov dword [esi + 0xec4], eax
lea eax, [esi + 0xc78]
mov dword [esi + 0xa8], eax
lea eax, [esi + 0x98]
mov dword [esi + 0xac], 1
push eax
call fcn.004113e0
add esp, 4
test al, al
jne 0x409c8c
mov eax, dword [esi + 0x57c]
mov edi, dword [esi + 0x580]
cmp eax, edi
je 0x409961
jb 0x409cac
test edi, edi
je 0x409937
mov ebx, dword [esi + 0x578]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push ebx
push 0
push eax
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
je 0x4070b2
mov dword [esi + 0x578], eax
mov dword [esi + 0x57c], edi
jmp 0x409961
test eax, eax
je 0x40994f
mov edi, dword [esi + 0x578]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
xor eax, eax
mov dword [esi + 0x578], 1
mov dword [esi + 0x57c], eax
mov eax, dword [esi + 0x580]
movsd xmm0, qword [esi + 0x578]
movsd xmm1, qword [esi + 0x320]
mov dword [esi + 0x1190], 0x18
lea ecx, [esi + 0x98]
movsd qword [esi + 0xc78], xmm0
mov dword [esi + 0xc80], eax
movsd xmm0, qword [esi + 0x318]
movsd qword [esi + 0x580], xmm1
mov edx, dword [esi + 0xc78]
movsd qword [esi + 0x578], xmm0
mov dword [esi + 0x14], edx
push eax
call fcn.00414210
add esp, 4
cmp dword [esi + 0xc7c], 0
mov eax, dword [esi + 0xa0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0x98]
movsd xmm1, qword [esi + 0x578]
movsd xmm2, qword [esi + 0x580]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0xa0], xmm2
movsd qword [esi + 0xa8], xmm0
mov dword [esi + 0xb0], eax
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm2
movsd qword [ecx + 4], xmm1
mov dword [ecx], 1
je 0x409a2f
call sub.KERNEL32.dll_GetProcessHeap
push dword [esi + 0x14]
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x32c], 0
je 0x409a4c
mov edi, dword [esi + 0x328]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x74], 0
je 0x409a63
mov edi, dword [esi + 0x70]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x5c], 0
je 0x409a7a
mov edi, dword [esi + 0x58]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
cmp dword [esi + 0x50], 0
je 0x409a91
mov edi, dword [esi + 0x4c]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0xa34]
mov dword [esi + 0x14], eax
cmp dword [esi + 0x3c], eax
mov eax, dword [esi + 0x28]
je 0x409af3
mov ecx, dword [esi + 0x3c]
mov edi, dword [ecx]
lea ebx, [ecx + 0xc]
test edi, edi
jne 0x409ac0
jmp 0x409ad9
cmp ebx, dword [esi + 0x14]
mov ecx, ebx
je 0x409aea
mov edi, dword [ecx]
lea ebx, [ecx + 0xc]
test edi, edi
je 0x409ad9
cmp dword [ecx + 4], 0
je 0x409ab0
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
jmp 0x409ab0
mov dword [esi + 0xa30], ebx
cmp dword [esi + 0xa2c], 0
jne 0x409afc
jmp 0x409b13
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xa30], ecx
cmp dword [esi + 0xa2c], 0
je 0x409b13
mov edi, dword [esi + 0xa28]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
cmp dword [esi + 0x8c], 0
je 0x409b33
mov edi, dword [esi + 0x88]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 4], 0
je 0x409b4f
mov edi, dword [ecx]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
cmp dword [eax + 4], 0
je 0x409b65
mov edi, dword [eax]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x1188]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [esi + 0x98]
call fcn.00413c80
mov eax, dword [esi + 0xb0]
mov ecx, dword [esi + 0x40]
movsd xmm0, qword [esi + 0xa8]
movsd xmm2, qword [esi + 0x98]
movsd xmm1, qword [esi + 0xa0]
mov dword [ecx + 0x1c], eax
movsd qword [ecx + 0x14], xmm0
movsd qword [ecx + 0xc], xmm1
movsd qword [ecx + 4], xmm2
mov dword [ecx], 1
cmp dword [esi + 0x5c], 0
jne 0x409a69
jmp 0x409a7a
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + 0xa34]
mov ecx, eax
cmp eax, edx
mov eax, dword [esi + 0x28]
mov dword [esi + 0x14], edx
jne 0x409bea
jmp 0x409c26
cmp ebx, dword [esi + 0x14]
mov ecx, ebx
je 0x409c1d
mov edi, dword [ecx]
lea ebx, [ecx + 0xc]
test edi, edi
je 0x409c0c
cmp dword [ecx + 4], 0
je 0x409be3
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
jmp 0x409be3
mov dword [esi + 0xa30], ebx
cmp dword [esi + 0xa2c], 0
jne 0x409c2f
jmp 0x409c46
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xa30], ecx
cmp dword [esi + 0xa2c], 0
je 0x409c46
mov edi, dword [esi + 0xa28]
call sub.KERNEL32.dll_GetProcessHeap
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x34]
mov edi, dword [esi + 0x1c]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edi
mov dword [ecx], 0
cmp dword [esi + 0x8c], 0
jne 0x409b1c
jmp 0x409b33
call fcn.0041e940
jmp 0x409cc3
mov dword [esi + 0x1190], 0x1e
call fcn.0041e940
jmp 0x409cc3
call fcn.0041e940
jmp 0x409cc3
mov ecx, 0x4455ff
mov edx, 0x37
push 0x445638
lea eax, [esi + 0x98]
push eax
call fcn.00411a20
add esp, 8
jmp 0x409cc3
mov ecx, str.Tried_to_shrink_to_a_larger_capacityD
mov edx, 0x24
push 0x448034
call fcn.004104b0
add esp, 4
ud2