Function at 0x440c20
Capabilities:
Enumerate pe sections
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4ac
mov eax, dword [0x4a6110]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x448], eax
mov eax, dword [0x4a7b74]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x474], edi
mov dword [ebp - 0x440], edi
mov dword [ebp - 0x49c], 0
test eax, eax
je 0x440c6b
mov eax, dword [eax + 0x400]
mov dword [ebp - 0x458], eax
cmp edi, 0xffffffff
je 0x440c7c
mov dword [ebp - 0x49c], 1
jmp 0x440cb8
lea eax, [ebp - 0x458]
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.004431d0
add esp, 0xc
test eax, eax
jne 0x440cac
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004689fb
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0x440]
mov dword [ebp - 0x474], edi
push ebx
push esi
mov esi, 1
mov ebx, esi
cmp edi, 0xffffffff
je 0x440e7d
mov ecx, 0x4a5020
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440cd2
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea eax, [ebp - 0x430]
push eax
sub ecx, edx
push ecx
lea eax, [ebp - 0x14]
push eax
push edi
call ebx
test eax, eax
je 0x442e96
mov ecx, 0x4a5020
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440d02
sub ecx, edx
cmp dword [ebp - 0x430], ecx
jb 0x442e96
cmp ecx, 0x10
jae 0x442e9d
mov byte [ebp + ecx - 0x14], al
mov esi, 2
mov ecx, 0x4a5020
lea eax, [ebp - 0x14]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x440d50
test dl, dl
je 0x440d4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x440d50
add eax, 2
add ecx, esi
test dl, dl
jne 0x440d31
xor eax, eax
jmp 0x440d55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x440e78
push eax
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x480]
push eax
push edi
call ebx
test eax, eax
je 0x440e78
cmp dword [ebp - 0x430], esi
jb 0x440e78
mov ax, word [ebp - 0x480]
mov ecx, 0x7fff
and ax, cx
mov esi, 4
mov dword [ebp - 0x434], esi
mov word [ebp - 0x480], ax
cmp ax, 0xb
je 0x440db6
cmp ax, 0xa
jne 0x440e78
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x46c]
push eax
push edi
call ebx
test eax, eax
je 0x440e78
cmp dword [ebp - 0x430], 2
jb 0x440e78
movzx esi, word [ebp - 0x46c]
push 1
push esi
call fcn.004688e4
add esp, 8
mov dword [ebp - 0x454], eax
push 0
lea eax, [ebp - 0x430]
push eax
push esi
mov esi, dword [ebp - 0x454]
push esi
push edi
call ebx
test eax, eax
je 0x440e72
movzx eax, word [ebp - 0x46c]
cmp dword [ebp - 0x430], eax
jb 0x440e72
mov eax, dword [0x4a7b6c]
mov dword [ebp - 0x434], 3
mov ecx, dword [eax + 0x80]
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x440e5c
test dx, dx
je 0x440e58
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x440e5c
add eax, 4
add ecx, 4
test dx, dx
jne 0x440e36
xor eax, eax
jmp 0x440e61
sbb eax, eax
or eax, 1
push esi
test eax, eax
je 0x440f1d
call fcn.00467c86
add esp, 4
mov esi, dword [ebp - 0x434]
mov ebx, 1
cmp dword [ebp - 0x49c], 0
mov eax, dword [0x4a7b6c]
mov dword [eax + 0x374], 0
jne 0x440ea1
cmp edi, 0xffffffff
je 0x440ea1
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x440eeb
push 0x100
lea eax, [ebp - 0x214]
push eax
lea eax, [esi + 0x81]
push eax
push dword [0x4a7b38]
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, dword [0x4a7b74]
push 0x30
mov eax, dword [ecx + 0x4f4]
mov eax, dword [eax + 0x34]
push dword [eax + 0x80]
lea eax, [ebp - 0x214]
push eax
push dword [ecx + 0xc]
call dword [sym.imp.USER32.dll_MessageBoxW]
push 6
call fcn.00436ee0
add esp, 4
call fcn.00449110
mov ecx, dword [0x4a7b74]
pop esi
mov eax, ebx
pop ebx
mov dword [ecx + 0x1270], 0
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004689fb
mov esp, ebp
pop ebp
ret
call fcn.00467c86
add esp, 4
lea eax, [ebp - 0x430]
push 0
push eax
push 4
lea eax, [ebp - 0x4ac]
push eax
push edi
call ebx
test eax, eax
je 0x440e72
cmp dword [ebp - 0x430], 4
jb 0x440e72
mov eax, dword [ebp - 0x4ac]
mov esi, 3
cmp eax, dword [ebp - 0x458]
jne 0x440e78
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x46c]
push eax
push edi
call ebx
test eax, eax
je 0x440e78
cmp dword [ebp - 0x430], 2
jb 0x440e78
mov esi, dword [ebp - 0x448]
cmp dword [esi], 0
je 0x440fc7
cmp dword [ebp - 0x49c], 0
jne 0x440fab
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, word [ebp - 0x46c]
mov ecx, dword [ebp - 4]
mov dword [esi], eax
pop esi
pop ebx
xor ecx, ebp
xor eax, eax
pop edi
call fcn.004689fb
mov esp, ebp
pop ebp
ret
movzx eax, word [ebp - 0x46c]
mov ecx, dword [0x4a7b6c]
mov esi, 6
cmp eax, dword [ecx + 0x1f0]
jne 0x440e78
mov dword [ecx + 0x374], 1
call fcn.00425e60
call fcn.0040f3e0
push 0
call fcn.00450b80
push 0
call fcn.00440810
call fcn.0043f090
call fcn.004493b0
call fcn.004402e0
push 0
call fcn.0043f6c0
add esp, 0xc
test ax, ax
jne 0x440e78
call fcn.00440530
test eax, eax
jne 0x440e78
call fcn.00450b60
call fcn.00443710
test eax, eax
jne 0x440e78
call fcn.0043cdb0
test ax, ax
jne 0x440e78
call fcn.00425250
push 0x68
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 1
call fcn.00467cbe
add esp, 4
mov esi, eax
push 0
lea eax, [ebp - 0x430]
push eax
push 0x68
push esi
push edi
call ebx
test eax, eax
je 0x442e8a
cmp dword [ebp - 0x430], 0x68
jb 0x442aca
movzx ecx, byte [esi]
mov eax, dword [0x4a7b74]
mov byte [eax + 0x26], cl
movzx ecx, byte [esi + 1]
mov eax, dword [0x4a7b74]
mov byte [eax + 0x27], cl
movzx ecx, word [esi + 2]
mov eax, dword [0x4a7b74]
mov word [eax + 0x28], cx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 4]
mov dword [eax + 0xb0], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 8]
mov dword [eax + 0xb4], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xd0], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x10]
mov dword [eax + 0xd4], ecx
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, eax
add ecx, dword [esi + 0x14]
mov eax, dword [0x4a7b74]
mov dword [eax + 0xd8], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x110], ecx
movzx ecx, word [esi + 0x1c]
mov eax, dword [0x4a7b74]
mov word [eax + 0x14c], cx
movzx ecx, word [esi + 0x1e]
mov eax, dword [0x4a7b74]
mov word [eax + 0x18c], cx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x20]
mov dword [eax + 0x190], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x24]
mov dword [eax + 0x194], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x28]
mov dword [eax + 0x19c], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x2c]
mov dword [eax + 0x1a0], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x30]
mov dword [eax + 0x1b4], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x34]
mov dword [eax + 0x1b8], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x38]
mov dword [eax + 0x1bc], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x3c]
mov dword [eax + 0x1c0], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x40]
mov dword [eax + 0x1c4], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x44]
mov dword [eax + 0x1c8], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x48]
mov dword [eax + 0x1cc], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x4c]
mov dword [eax + 0x1d0], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x50]
mov dword [eax + 0x4d8], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x54]
mov dword [eax + 0x4dc], ecx
mov ecx, dword [esi + 0x58]
mov eax, dword [0x4a7b74]
mov dword [eax + 0x4e0], ecx
mov ecx, dword [esi + 0x5c]
mov eax, dword [0x4a7b74]
push esi
mov dword [eax + 0x504], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x60]
mov dword [eax + 0x508], ecx
mov eax, dword [0x4a7b74]
mov ecx, dword [esi + 0x64]
mov dword [eax + 0x50c], ecx
call fcn.00467c86
mov ecx, dword [0x4a7b74]
push 0x2c
mov eax, dword [ecx + 0xd0]
mov dword [ecx + 0x430], eax
call fcn.00467cbe
add esp, 8
mov esi, eax
push 0
lea eax, [ebp - 0x430]
push eax
push 0x2c
push esi
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 0x2c
jb 0x442aca
mov eax, dword [0x4a7b74]
push esi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 4]
mov dword [ecx + 0x20], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 8]
mov dword [ecx + 0x24], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x28], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 0x10]
mov dword [ecx], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [esi + 0x28]
mov dword [ecx + 8], eax
mov eax, dword [0x4a7b74]
movq xmm0, qword [esi + 0x18]
mov eax, dword [eax + 0x1c]
movq qword [eax + 0x34], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [eax + 0x3c], xmm0
call fcn.00467c86
push 0x1c
call fcn.00467cbe
mov esi, eax
mov eax, dword [0x4a7b74]
add esp, 8
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x440], 0
cmp dword [eax + 0x2c], 0
jle 0x4413b2
mov dword [ebp - 0x458], 0
push 0
lea eax, [ebp - 0x430]
push eax
push 0x1c
push esi
push edi
call ebx
test eax, eax
je 0x4413b2
cmp dword [ebp - 0x430], 0x1c
jb 0x4413b2
mov eax, dword [0x4a7b74]
mov edx, dword [ebp - 0x458]
mov eax, dword [eax + 0x1c]
mov ecx, dword [eax + 0x30]
mov eax, dword [esi]
add ecx, edx
add edx, 0x60
mov dword [ecx + 4], eax
mov eax, dword [esi + 4]
mov dword [ecx + 8], eax
mov eax, dword [esi + 8]
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x2c], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x34], eax
mov eax, dword [0x4a7b74]
mov ecx, dword [ebp - 0x440]
mov eax, dword [eax + 0x1c]
inc ecx
mov dword [ebp - 0x440], ecx
mov dword [ebp - 0x458], edx
cmp ecx, dword [eax + 0x2c]
jl 0x441337
push esi
call fcn.00467c86
add esp, 4
lea eax, [ebp - 0x430]
push 0
push eax
mov eax, dword [0x4a7b74]
mov dword [ebp - 0x444], 0x10
mov eax, dword [eax + 0x18]
push 0x10
push dword [eax + 0x25c]
push edi
call ebx
test eax, eax
je 0x442aca
mov eax, dword [ebp - 0x444]
cmp dword [ebp - 0x430], eax
jb 0x442aca
push 0
lea ecx, [ebp - 0x430]
push ecx
push eax
mov eax, dword [0x4a7b74]
mov eax, dword [eax + 0x18]
push dword [eax + 0x258]
push edi
call ebx
test eax, eax
je 0x442aca
mov eax, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x444]
jb 0x442aca
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x490]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
xor esi, esi
mov dword [ebp - 0x478], 1
cmp dword [ebp - 0x490], esi
jle 0x4414c1
mov edi, edi
lea eax, [ebp - 0x42c]
push eax
push edi
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x424], 0
call fcn.00440b70
mov edx, eax
add esp, 8
mov dword [ebp - 0x478], edx
test edx, edx
je 0x4414c1
lea eax, [ebp - 0x42c]
push eax
mov eax, dword [0x4a7b74]
push esi
push dword [eax + 0x18]
call fcn.004058c0
inc esi
add esp, 0xc
cmp esi, dword [ebp - 0x490]
jl 0x441470
mov ecx, dword [0x4a7b74]
mov eax, dword [ecx + 0x18]
cmp esi, dword [eax + 0x264]
jge 0x441508
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x424], 0
lea ecx, [ebp - 0x42c]
push ecx
push esi
push eax
call fcn.004058c0
mov eax, dword [0x4a7b74]
inc esi
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp esi, dword [eax + 0x264]
jl 0x4414e6
cmp dword [ebp - 0x478], 0
je 0x442aca
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x490]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
xor esi, esi
cmp dword [ebp - 0x490], esi
jle 0x441611
lea ecx, [ecx]
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x464]
push eax
push edi
call ebx
test eax, eax
je 0x441607
cmp dword [ebp - 0x430], 2
jb 0x441607
mov ax, word [ebp - 0x464]
test ax, ax
je 0x4415ea
movzx eax, ax
push eax
mov dword [ebp - 0x454], eax
call fcn.00467cbe
add esp, 4
mov dword [ebp - 0x460], eax
test eax, eax
je 0x441607
push 0
lea ecx, [ebp - 0x430]
push ecx
push dword [ebp - 0x454]
push eax
push edi
call ebx
test eax, eax
je 0x4415f9
movzx eax, word [ebp - 0x464]
cmp dword [ebp - 0x430], eax
jb 0x4415f9
push dword [ebp - 0x460]
mov eax, dword [0x4a7b74]
push esi
push dword [eax + 0x18]
call fcn.00405740
push dword [ebp - 0x460]
call fcn.00467c86
add esp, 0x10
inc esi
cmp esi, dword [ebp - 0x490]
jl 0x441550
jmp 0x441611
push dword [ebp - 0x460]
call fcn.00467c86
add esp, 4
mov dword [ebp - 0x478], 0
mov eax, dword [0x4a7b74]
mov eax, dword [eax + 0x18]
cmp esi, dword [eax + 0x278]
jge 0x441641
push 0x4815a8
push esi
push eax
call fcn.00405740
mov eax, dword [0x4a7b74]
inc esi
mov eax, dword [eax + 0x18]
add esp, 0xc
cmp esi, dword [eax + 0x278]
jl 0x441621
cmp dword [ebp - 0x478], 0
je 0x442aca
xor esi, esi
call fcn.00435c00
test eax, eax
je 0x441671
lea esp, [esp]
cmp word [eax + 2], 2
jb 0x441668
inc esi
call fcn.00436e70
test eax, eax
jne 0x441660
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x444]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
cmp esi, dword [ebp - 0x444]
je 0x4416b3
mov ebx, dword [ebp - 0x438]
mov esi, 5
jmp 0x440e7d
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x4a4]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
push 0x4c
call fcn.00467cbe
push 0x5c
mov dword [ebp - 0x47c], eax
call fcn.00467cbe
mov esi, eax
push 0x74
mov dword [ebp - 0x484], esi
call fcn.00467cbe
push 0x50
mov dword [ebp - 0x460], eax
call fcn.00467cbe
push 0x24
mov dword [ebp - 0x488], eax
call fcn.00467cbe
push 0x50
mov dword [ebp - 0x458], eax
call fcn.00467cbe
mov dword [ebp - 0x440], eax
mov eax, dword [0x4a7b74]
add esp, 0x18
cmp dword [ebp - 0x4a4], 0
mov eax, dword [eax + 0xa0]
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x454], 0
jle 0x442474
jmp 0x441760
push 0
lea eax, [ebp - 0x430]
push eax
push 0x4c
push dword [ebp - 0x47c]
mov dword [ebp - 0x43c], 1
push edi
call ebx
test eax, eax
je 0x44247c
cmp dword [ebp - 0x430], 0x4c
jb 0x44246c
xor eax, eax
push eax
mov dword [ebp - 0x450], eax
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x444]
push eax
push edi
call ebx
test eax, eax
je 0x44246c
cmp dword [ebp - 0x430], 2
jb 0x44246c
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x441815
push eax
call fcn.00467cbe
add esp, 4
mov dword [ebp - 0x450], eax
push 0
lea eax, [ebp - 0x430]
push eax
push dword [ebp - 0x444]
push dword [ebp - 0x48c]
push edi
call ebx
test eax, eax
je 0x44246c
mov eax, dword [ebp - 0x444]
cmp dword [ebp - 0x430], eax
jb 0x44246c
add dword [ebp - 0x48c], eax
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x448], 0xffffffff
test dword [eax + 0x38], 0x230
je 0x44185d
push 0
lea eax, [ebp - 0x430]
push eax
push 0x5c
push esi
push edi
call ebx
test eax, eax
je 0x44246c
cmp dword [ebp - 0x430], 0x5c
jb 0x44246c
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x448], eax
jmp 0x44186a
push 0x5c
push 0
push esi
call fcn.00468a10
add esp, 0xc
mov eax, dword [ebp - 0x47c]
movzx eax, word [eax + 4]
push eax
call fcn.00435ff0
add esp, 4
mov dword [ebp - 0x44c], 0
mov dword [ebp - 0x45c], 0
test eax, eax
je 0x4418bc
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x44c], eax
mov ecx, dword [eax + 0x36]
mov dword [ebp - 0x45c], ecx
mov ecx, dword [ebp - 0x47c]
test byte [ecx + 0x3c], 8
jne 0x4418c2
mov dword [eax + 0x36], 0
jmp 0x4418c2
mov ecx, dword [ebp - 0x47c]
movsx eax, word [ecx]
push eax
push dword [ecx + 0x40]
movzx eax, word [ecx + 4]
push 0
push dword [ebp - 0x448]
push dword [ecx + 0x14]
push dword [ecx + 0xc]
push eax
movzx eax, word [ecx + 2]
push eax
call fcn.00424650
mov edx, eax
mov eax, dword [ebp - 0x44c]
add esp, 0x20
test eax, eax
je 0x4418fe
mov ecx, dword [ebp - 0x45c]
mov dword [eax + 0x36], ecx
test edx, edx
js 0x442462
mov eax, dword [0x4a7b74]
mov ecx, dword [ebp - 0x47c]
mov eax, dword [eax + 0x1278]
mov ebx, dword [eax + edx*8]
movzx eax, word [ecx]
mov word [ebx], ax
movzx eax, word [ecx + 6]
mov word [ebx + 0x1a], ax
mov eax, dword [ecx + 8]
mov dword [ebx + 0x48], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0x4c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0x50], eax
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x54], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x58], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0x5c], eax
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x60], eax
mov eax, dword [ecx + 0x24]
mov dword [ebx + 0x64], eax
movq xmm0, qword [ecx + 0x28]
movq qword [ebx + 0x68], xmm0
movq xmm0, qword [ecx + 0x30]
movq qword [ebx + 0x70], xmm0
mov eax, dword [ecx + 0x38]
mov dword [ebx + 0x78], eax
movzx eax, word [ecx + 0x3c]
mov word [ebx + 0x7c], ax
mov eax, dword [ecx + 0x44]
mov dword [ebx + 0xb4], eax
mov eax, dword [ebp - 0x450]
mov dword [ebx + 0x2c], eax
test eax, eax
je 0x441999
push eax
call fcn.00467c86
add esp, 4
mov edx, dword [ebx + 0x78]
test edx, 0x230
je 0x441aa6
mov ecx, dword [ebp - 0x484]
mov eax, dword [ecx + 4]
mov dword [ebx + 0xc8], eax
mov eax, dword [ecx + 8]
mov dword [ebx + 0xcc], eax
mov eax, dword [ecx + 0xc]
mov dword [ebx + 0xd8], eax
mov eax, dword [ecx + 0x10]
mov dword [ebx + 0xdc], eax
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0xe0], eax
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0xe4], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebx + 0xe8], eax
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0xec], eax
mov eax, dword [ecx + 0x24]
mov dword [ebx + 0xf0], eax
mov eax, dword [ecx + 0x28]
mov dword [ebx + 0xf4], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 0xf8], eax
mov eax, dword [ecx + 0x30]
mov dword [ebx + 0x104], eax
mov eax, dword [ecx + 0x34]
mov dword [ebx + 0x108], eax
mov eax, dword [ecx + 0x38]
mov dword [ebx + 0x10c], eax
mov eax, dword [ecx + 0x3c]
mov dword [ebx + 0x110], eax
mov eax, dword [ecx + 0x40]
mov dword [ebx + 0x114], eax
mov eax, dword [ecx + 0x44]
mov dword [ebx + 0x118], eax
mov eax, dword [ecx + 0x48]
mov dword [ebx + 0x11c], eax
mov eax, dword [ecx + 0x4c]
mov dword [ebx + 0x120], eax
mov eax, dword [ecx + 0x50]
mov dword [ebx + 0x120], eax
mov dword [ebx + 0xfc], 1
cmp word [ecx], 0
je 0x441a7c
mov dword [ebx + 0xc0], 0x42bb40
movzx eax, word [ecx + 2]
cmp eax, 1
jne 0x441a91
mov dword [ebx + 0xc4], 0x42bac0
jmp 0x441aa0
cmp eax, 2
jne 0x441aa0
mov dword [ebx + 0xc4], 0x42bb40
mov esi, dword [ebp - 0x484]
test dl, 0x10
je 0x441b98
push 0
lea eax, [ebp - 0x430]
push eax
push 0x74
push dword [ebp - 0x460]
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 0x74
jb 0x442454
mov edi, dword [ebp - 0x460]
push 0
push dword [ebx + 0x44]
push ebx
push dword [edi + 0x20]
call fcn.0042cd90
mov eax, dword [esi + 0x20]
mov dword [ebx + 0xec], eax
mov eax, dword [edi]
mov dword [ebx + 0x130], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x134], eax
mov eax, dword [edi + 8]
mov dword [ebx + 0x140], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x14c], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x150], eax
mov ax, word [edi + 0x14]
mov word [ebx + 0x154], ax
mov eax, dword [edi + 0x18]
mov dword [ebx + 0x172], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x176], eax
mov eax, dword [ebx + 0xcc]
add esp, 0x10
cmp eax, 5
jne 0x441b5c
mov ecx, dword [ebx + 0x1aa]
mov dword [ebp - 0x498], ecx
lea esi, [edi + 0x24]
mov ecx, 0x14
lea edi, [ebx + 0x17e]
rep movsd dword es:[edi], dword [esi]
cmp eax, 5
jne 0x441c73
mov ecx, dword [ebp - 0x498]
mov eax, dword [ebp - 0x460]
mov dword [ebx + 0x1aa], ecx
mov eax, dword [eax + 0x48]
add eax, ecx
mov dword [ebx + 0x1a2], eax
mov edi, dword [ebp - 0x474]
test byte [ebx + 0x78], 0x20
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
je 0x441d1a
mov edx, dword [ebp - 0x488]
push 0
lea eax, [ebp - 0x430]
push eax
push 0x50
push edx
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 0x50
jb 0x442454
mov ecx, dword [ebx + 0xb8]
mov edx, dword [ebp - 0x488]
add ecx, ebx
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [edx + 0x28]
mov dword [ecx + 0x28], eax
mov eax, dword [edx + 0x2c]
mov dword [ecx + 0x2c], eax
mov eax, dword [edx + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [edx + 0x34]
mov dword [ecx + 0x34], eax
mov eax, dword [edx + 0x38]
mov dword [ecx + 0x38], eax
mov eax, dword [edx + 0x3c]
mov dword [ecx + 0x3c], eax
mov eax, dword [edx + 0x40]
mov dword [ecx + 0x40], eax
mov eax, dword [edx + 0x44]
mov dword [ecx + 0x44], eax
mov eax, dword [edx + 0x48]
mov dword [ecx + 0x48], eax
mov eax, dword [edx + 0x4c]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebp - 0x488]
mov edx, dword [ebx + 0x44]
cmp dword [eax + 0x14], 0
je 0x441ce0
movzx eax, word [edx + 6]
add eax, edx
mov edx, dword [ebp - 0x488]
add eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
mov eax, edx
jmp 0x441ce7
cmp eax, 0xd
jne 0x441caa
cmp dword [ebx + 0x17e], 0
mov edi, dword [ebp - 0x474]
je 0x441b98
mov eax, dword [0x4a7b74]
mov ecx, dword [ebx + 0x182]
mov eax, dword [eax + 0x1278]
mov eax, dword [eax + ecx*8]
mov dword [ebx + 0x182], eax
jmp 0x441b98
cmp eax, 0xe
jne 0x441b92
mov ecx, dword [ebx + 0xd0]
test ecx, ecx
je 0x441b92
mov edi, dword [ebp - 0x474]
mov eax, dword [ecx]
push edi
push 0x1011
push ebx
call dword [eax + 0x54]
test eax, eax
je 0x442454
jmp 0x441b98
mov dword [ecx + 0x14], 0
mov edx, dword [eax + 0x20]
test edx, edx
je 0x441cf8
mov eax, dword [ecx + 0x14]
add eax, edx
mov dword [ecx + 0x20], eax
jmp 0x441cff
mov dword [ecx + 0x20], 0
cmp dword [ecx + 0x14], 0
je 0x441d1a
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x441d1a
mov eax, dword [ecx + 0x44]
movsx eax, word [edx + eax*2 + 8]
mov dword [ebx + 0xdc], eax
test dword [ebx + 0x78], 0x200
je 0x441f66
push 0
lea eax, [ebp - 0x430]
push eax
push 0x24
push dword [ebp - 0x458]
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 0x24
jb 0x442454
mov edx, dword [ebx + 0xbc]
add edx, ebx
xor ecx, ecx
cmp word [edx + 0x18], 0xd
mov dword [ebp - 0x45c], edx
mov dword [ebp - 0x450], ecx
jne 0x441d76
mov ecx, dword [edx + 0x1c]
mov dword [ebp - 0x450], ecx
mov eax, dword [ebp - 0x458]
movq xmm0, qword [eax]
movq qword [edx], xmm0
movq xmm0, qword [eax + 8]
movq qword [edx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edx + 0x10], xmm0
movq xmm0, qword [eax + 0x18]
movq qword [edx + 0x18], xmm0
mov eax, dword [eax + 0x20]
mov dword [edx + 0x20], eax
cmp word [edx + 0x18], 0xd
jne 0x441f27
push 0
lea eax, [ebp - 0x430]
push eax
push 0xc
lea eax, [ebp - 0x428]
push eax
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 0xc
jb 0x442454
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x441ed0
mov eax, dword [ecx]
call dword [eax + 0x54]
cmp eax, dword [ebp - 0x428]
jne 0x441ec2
mov ecx, dword [ebp - 0x450]
mov edx, dword [ebp - 0x45c]
mov dword [edx + 0x1c], ecx
test ecx, ecx
je 0x441e20
mov eax, dword [ecx]
push dword [ebp - 0x424]
call dword [eax + 0x38]
mov edx, dword [ebp - 0x45c]
mov eax, dword [ebp - 0x420]
test eax, eax
je 0x441f3a
mov dword [ebp - 0x44c], 0
jle 0x441f3a
mov edi, edi
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x448]
push eax
push edi
mov dword [ebp - 0x448], 0
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 4
jb 0x442454
mov ecx, dword [ebp - 0x450]
test ecx, ecx
je 0x441eab
mov eax, dword [ecx]
push dword [ebp - 0x44c]
call dword [eax + 0x18]
sub eax, 0
je 0x441e94
dec eax
je 0x441f06
dec eax
jne 0x441eab
mov ecx, dword [ebp - 0x450]
push dword [ebp - 0x448]
mov eax, dword [ecx]
push dword [ebp - 0x44c]
call dword [eax + 0x40]
mov eax, dword [ebp - 0x44c]
inc eax
mov dword [ebp - 0x44c], eax
cmp eax, dword [ebp - 0x420]
jl 0x441e40
jmp 0x441f34
push dword [ebp - 0x450]
call fcn.00433f50
add esp, 4
push dword [ebp - 0x428]
mov eax, dword [0x4a7b74]
push dword [eax + 0x18]
call fcn.004332a0
mov ecx, eax
add esp, 8
mov dword [ebp - 0x450], ecx
test ecx, ecx
je 0x441e02
mov edx, dword [ebp - 0x45c]
or word [edx + 0x20], 0x40
jmp 0x441e08
mov ecx, dword [ebp - 0x450]
movss xmm0, dword [ebp - 0x448]
mov eax, dword [ecx]
push ecx
movss dword [esp], xmm0
push dword [ebp - 0x44c]
call dword [eax + 0x44]
jmp 0x441eab
test ecx, ecx
je 0x441f3a
push ecx
call fcn.00433f50
add esp, 4
mov edx, dword [ebp - 0x45c]
mov eax, dword [ebx + 0xd4]
test eax, eax
je 0x441f57
push dword [edx + 0x1c]
push dword [edx + 0x18]
push eax
mov eax, dword [0x4a7b74]
push dword [eax]
call sub.MMFS2.dll_Ordinal_83
mov eax, dword [ebp - 0x45c]
mov ecx, 0xfffb
and word [eax + 0x20], cx
test dword [ebx + 0x78], 0x100
je 0x442143
mov eax, dword [ebx + 0x80]
add eax, ebx
cmp word [ebp - 0x480], 0xb
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x44c], 0x1a
jb 0x441fc5
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x44c]
push eax
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 4
jb 0x442454
mov eax, dword [ebp - 0x45c]
push dword [eax]
call fcn.00467c86
mov ecx, dword [ebp - 0x45c]
mov eax, dword [ebp - 0x44c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x44c]
shl eax, 4
push eax
call fcn.00467cbe
mov ecx, dword [ebp - 0x45c]
add esp, 8
mov dword [ecx], eax
cmp dword [ebp - 0x44c], 0
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x448], 0
jle 0x442052
mov edi, edi
push eax
push edi
call fcn.00440b70
add esp, 8
mov dword [ebp - 0x478], eax
test eax, eax
je 0x442454
mov ecx, dword [ebp - 0x448]
mov eax, dword [ebp - 0x450]
inc ecx
add eax, 0x10
mov dword [ebp - 0x448], ecx
mov dword [ebp - 0x450], eax
cmp ecx, dword [ebp - 0x44c]
jl 0x442010
mov ecx, dword [ebp - 0x45c]
cmp dword [ebp - 0x478], 0
je 0x442454
lea eax, [ecx + 0x86]
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x450], eax
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x464]
push eax
push edi
call esi
test eax, eax
je 0x442116
cmp dword [ebp - 0x430], 2
jb 0x442116
cmp word [ebp - 0x464], 0
jbe 0x4420f9
mov eax, dword [ebp - 0x450]
push dword [eax]
call fcn.00467c86
movzx esi, word [ebp - 0x464]
push esi
call fcn.00467cbe
mov ecx, dword [ebp - 0x450]
add esp, 8
mov dword [ecx], eax
push 0
lea ecx, [ebp - 0x430]
push ecx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push eax
push edi
call esi
test eax, eax
je 0x442454
movzx eax, word [ebp - 0x464]
cmp dword [ebp - 0x430], eax
jb 0x442454
mov eax, dword [ebp - 0x448]
add dword [ebp - 0x450], 4
inc eax
mov dword [ebp - 0x448], eax
cmp eax, 0xa
jl 0x442075
push 0
lea eax, [ebp - 0x430]
push eax
mov eax, dword [ebp - 0x45c]
push 4
add eax, 0x68
push eax
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 4
jb 0x442454
movzx eax, word [ebx + 0x18]
cmp ax, 3
je 0x442175
cmp ax, 4
je 0x44216f
cmp ax, 5
je 0x44216f
cmp ax, 6
je 0x44216f
cmp ax, 7
je 0x44216f
cmp ax, 9
jne 0x44228c
cmp ax, 3
jne 0x442192
mov eax, dword [ebx + 0x22e]
test eax, eax
je 0x442192
push eax
call fcn.00467c86
add esp, 4
mov dword [ebx + 0x22e], 0
push 0
lea eax, [ebp - 0x430]
push eax
push 0x50
push dword [ebp - 0x440]
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 0x50
jb 0x442454
push 0x50
push dword [ebp - 0x440]
lea eax, [ebx + 0x1f2]
push eax
call fcn.0046ce30
movzx eax, word [ebx + 0x18]
add esp, 0xc
cmp ax, 3
jne 0x442255
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [ebp - 0x494]
push eax
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 2
jb 0x442454
mov ax, word [ebp - 0x494]
test ax, ax
je 0x44226d
movzx esi, ax
push esi
call fcn.00467cbe
add esp, 4
lea ecx, [ebp - 0x430]
push 0
push ecx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
push eax
push edi
mov dword [ebx + 0x22e], eax
call esi
test eax, eax
je 0x442454
movzx eax, word [ebp - 0x494]
cmp dword [ebp - 0x430], eax
jb 0x442454
jmp 0x44226d
cmp ax, 9
jne 0x44226d
push edi
push ebx
call fcn.004502b0
add esp, 8
test eax, eax
je 0x442454
test dword [ebx + 0x78], 0x200
je 0x44228c
mov eax, dword [ebx + 0xbc]
test byte [eax + ebx + 0x20], 0x20
je 0x44228c
push ebx
call fcn.00426df0
add esp, 4
cmp word [ebx + 0x18], 8
jne 0x4422a2
push edi
push ebx
call fcn.00447ff0
test eax, eax
je 0x442454
cmp word [ebx + 0x18], 0x20
jl 0x442366
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x470]
push eax
push edi
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 4
jne 0x442454
movsx edx, word [ebx + 0x18]
mov eax, dword [0x4a7b6c]
imul edx, edx, 0x92
mov ecx, dword [eax + 0xe0]
mov eax, dword [ebp - 0x470]
cmp eax, dword [edx + ecx - 0x11b4]
jne 0x44244a
push 0
lea eax, [ebp - 0x430]
push eax
push 1
lea eax, [ebp - 0x465]
push eax
push edi
mov byte [ebp - 0x465], 0
call esi
test eax, eax
je 0x442454
cmp dword [ebp - 0x430], 1
jne 0x442454
cmp byte [ebp - 0x465], 0
je 0x442366
movsx ecx, word [ebx + 0x18]
mov edx, dword [0x4a7b74]
imul ecx, ecx, 0x92
mov eax, dword [edx + 0x1d4]
mov eax, dword [ecx + eax - 0x11d8]
test eax, eax
je 0x44236c
push edi
push ebx
call eax
test eax, eax
je 0x442454
mov edx, dword [0x4a7b74]
test dword [ebx + 0x78], 0x200
je 0x44239e
mov eax, dword [ebx + 0xbc]
test byte [eax + ebx + 0x20], 1
mov eax, dword [ebx + 0xd4]
je 0x442390
test eax, eax
je 0x44239e
push 0
jmp 0x442396
test eax, eax
je 0x44239e
push 1
push eax
push dword [edx]
call sub.MMFS2.dll_Ordinal_78
mov esi, dword [ebp - 0x484]
cmp dword [esi + 0x54], 0
je 0x4423cd
cmp dword [ebx + 0x128], 0
jne 0x4423be
push 0
push ebx
call fcn.00401940
add esp, 8
mov ecx, dword [ebx + 0x128]
test ecx, ecx
je 0x442427
mov eax, dword [esi + 0x54]
jmp 0x44241d
cmp dword [esi + 0x58], 0
je 0x442427
mov eax, dword [ebx + 0x78]
or word [ebx + 0x7c], 1
test al, 0x20
jne 0x442407
test eax, 0x200
jne 0x442407
movzx eax, word [ebx]
movsx ecx, ax
mov eax, dword [0x4a7b74]
push ecx
mov eax, dword [eax + 0x1278]
mov dword [eax + ecx*8 + 4], 0
call fcn.00424240
jmp 0x44240d
push ebx
call fcn.0042bbd0
mov ecx, dword [ebx + 0x12c]
add esp, 4
test ecx, ecx
je 0x442427
mov eax, dword [esi + 0x58]
mov ecx, dword [ecx]
dec eax
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x34]
mov eax, dword [ebp - 0x454]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
inc eax
mov dword [ebp - 0x454], eax
cmp eax, dword [ebp - 0x4a4]
jl 0x441760
xor esi, esi
jmp 0x442481
mov dword [ebp - 0x434], 3
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, dword [ebp - 0x43c]
jmp 0x442481
mov dword [ebp - 0x434], 5
mov esi, dword [ebp - 0x43c]
jmp 0x442481
mov esi, dword [ebp - 0x470]
jmp 0x442481
mov esi, 1
push dword [ebp - 0x47c]
call fcn.00467c86
push dword [ebp - 0x484]
call fcn.00467c86
push dword [ebp - 0x460]
call fcn.00467c86
push dword [ebp - 0x488]
call fcn.00467c86
push dword [ebp - 0x458]
call fcn.00467c86
push dword [ebp - 0x440]
call fcn.00467c86
add esp, 0x18
test esi, esi
jne 0x442aca
mov eax, dword [0x4a7b74]
mov ecx, dword [eax + 0x1278]
cmp dword [eax + 0x3c], esi
jle 0x442529
mov edi, edi
cmp dword [ecx], 0
jne 0x4424ed
add ecx, 8
cmp dword [ecx], 0
je 0x4424e5
mov edx, dword [ecx]
test byte [edx + 0x78], 0x10
je 0x44251d
cmp dword [edx + 0xcc], 9
jne 0x44251d
mov edi, dword [edx + 0x1b2]
test edi, edi
je 0x44251d
mov eax, dword [eax + 0x1278]
mov eax, dword [eax + edi*8 - 8]
mov dword [edx + 0x1b2], eax
mov eax, dword [0x4a7b74]
inc esi
cmp esi, dword [eax + 0x3c]
jl 0x4424e0
mov edi, dword [ebp - 0x474]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x448], 0
cmp dword [eax + 0x2c], 0
jle 0x44265e
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x440]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
mov esi, dword [ebp - 0x440]
push esi
call fcn.00467cbe
add esp, 4
lea ecx, [ebp - 0x430]
push 0
push ecx
push esi
push eax
push edi
mov dword [ebp - 0x458], eax
call ebx
test eax, eax
je 0x442ab7
mov eax, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x444]
jb 0x442ab7
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x440]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x454], 0
test eax, eax
jle 0x442632
mov esi, dword [0x4a7b74]
mov edi, dword [ebp - 0x470]
jmp 0x4425e0
movzx ecx, word [edi]
mov eax, dword [esi + 0x1278]
lea edi, [edi + 2]
mov eax, dword [eax + ecx*8]
cmp dword [eax + 0xbc], 0
je 0x442610
mov eax, dword [eax + 0xd4]
test eax, eax
je 0x442610
push eax
push dword [esi]
call sub.MMFS2.dll_Ordinal_95
mov esi, dword [0x4a7b74]
mov eax, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x454]
cdq
sub eax, edx
inc ecx
sar eax, 1
mov dword [ebp - 0x454], ecx
cmp ecx, eax
jl 0x4425e0
mov edi, dword [ebp - 0x474]
push dword [ebp - 0x458]
call fcn.00467c86
mov eax, dword [0x4a7b74]
mov esi, dword [ebp - 0x448]
mov eax, dword [eax + 0x1c]
inc esi
add esp, 4
mov dword [ebp - 0x448], esi
cmp esi, dword [eax + 0x2c]
jl 0x442540
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x444]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
mov esi, dword [ebp - 0x444]
test esi, esi
je 0x4427d2
push esi
call fcn.00467cbe
add esp, 4
lea ecx, [ebp - 0x430]
push 0
push ecx
push esi
push eax
push edi
mov dword [ebp - 0x454], eax
call ebx
test eax, eax
je 0x442aca
mov eax, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x444]
jb 0x442aca
mov eax, dword [0x4a7b74]
mov esi, dword [ebp - 0x454]
mov eax, dword [eax + 0x58]
mov dword [ebp - 0x460], eax
cmp word [eax], 0xffff
je 0x4427c4
mov edi, eax
lea ecx, [ecx]
movzx eax, word [esi]
add esi, 2
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x498], esi
test ax, ax
js 0x4427a8
mov word [edi + 6], ax
mov edx, dword [0x4a7b74]
movzx ecx, ax
mov eax, dword [edx + 0x1278]
mov esi, dword [eax + ecx*8]
mov ecx, edi
sub ecx, dword [edx + 0x58]
mov eax, 0xe070381d
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
or eax, 0xffff8000
mov word [esi + 0x14], ax
lea eax, [esi + 0x16]
mov esi, dword [ebp - 0x498]
mov ecx, 0xffff8000
mov word [eax], cx
movzx edx, word [esi]
mov ecx, dword [ebp - 0x470]
add esi, 2
movzx edi, cx
test dx, dx
js 0x4427a2
jmp 0x442770
mov word [eax], dx
mov eax, dword [0x4a7b74]
movzx ecx, dx
mov eax, dword [eax + 0x1278]
add esi, 2
mov eax, dword [eax + ecx*8]
add eax, 0x16
mov word [eax - 2], di
mov ecx, 0xffff8000
mov word [eax], cx
movzx edi, dx
movzx edx, word [esi - 2]
test dx, dx
jns 0x442770
mov edi, dword [ebp - 0x460]
add edi, 0x92
mov dword [ebp - 0x460], edi
cmp word [edi], 0xffff
jne 0x4426f0
mov edi, dword [ebp - 0x474]
push dword [ebp - 0x454]
call fcn.00467c86
add esp, 4
mov eax, dword [0x4a7b6c]
cmp dword [eax + 0x284], 0
je 0x4427e5
call fcn.00440910
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x4a8]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
mov eax, dword [ebp - 0x4a8]
test eax, eax
je 0x442a50
add eax, 0xff
cdq
and edx, 0xff
lea ecx, [edx + eax]
mov eax, dword [0x4a7b6c]
sar ecx, 8
shl ecx, 0xa
add eax, 0x284
add ecx, 8
push eax
push ecx
call fcn.00427a50
add esp, 8
test eax, eax
je 0x442aca
mov eax, dword [0x4a7b6c]
mov dword [ebp - 0x458], 0
mov ecx, dword [eax + 0x284]
mov eax, dword [ebp - 0x4a8]
mov dword [ebp - 0x48c], ecx
mov dword [ecx], eax
mov dword [ecx + 4], 0x100
test eax, eax
jle 0x442a50
xor eax, eax
push eax
mov dword [ebp - 0x440], eax
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x444]
push eax
push edi
call ebx
test eax, eax
je 0x442a50
cmp dword [ebp - 0x430], 4
jb 0x442a50
mov esi, dword [ebp - 0x444]
test esi, esi
je 0x4428fd
push esi
call fcn.00467cbe
add esp, 4
mov dword [ebp - 0x440], eax
test eax, eax
je 0x442aca
push 0
lea ecx, [ebp - 0x430]
push ecx
push esi
push eax
push edi
call ebx
test eax, eax
je 0x442aca
mov eax, dword [ebp - 0x430]
cmp eax, dword [ebp - 0x444]
jb 0x442aca
mov ecx, dword [ebp - 0x440]
mov esi, dword [ebp - 0x458]
mov eax, dword [ebp - 0x48c]
mov dword [eax + esi*4 + 8], ecx
test ecx, ecx
je 0x442a41
cmp dword [ecx + 4], 0xc
jne 0x442a41
xor edx, edx
mov dword [ebp - 0x448], edx
cmp dword [ecx], edx
jle 0x442a41
lea eax, [ecx + 8]
jmp 0x442940
mov esi, eax
lea eax, [esi + 2]
mov dword [ebp - 0x470], eax
jmp 0x442950
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x442950
mov eax, dword [ecx + 4]
sub esi, dword [ebp - 0x470]
imul eax, edx
add eax, ecx
push 0
mov dword [ebp - 0x498], eax
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x444]
push eax
push edi
sar esi, 1
mov dword [ebp - 0x454], 0
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
mov eax, dword [ebp - 0x444]
test eax, eax
je 0x4429fd
add eax, eax
push eax
mov dword [ebp - 0x470], eax
call fcn.00467cbe
add esp, 4
mov dword [ebp - 0x454], eax
test eax, eax
je 0x442aca
push 0
lea ecx, [ebp - 0x430]
push ecx
push dword [ebp - 0x470]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
mov eax, dword [ebp - 0x444]
add eax, eax
cmp dword [ebp - 0x430], eax
jb 0x442aca
mov ecx, dword [ebp - 0x498]
mov eax, dword [ebp - 0x454]
mov edx, dword [ebp - 0x448]
mov dword [ecx + esi*2 + 0xa], eax
mov eax, dword [ebp - 0x444]
mov dword [ecx + esi*2 + 0xe], eax
mov ecx, dword [ebp - 0x440]
inc edx
mov dword [ebp - 0x448], edx
lea eax, [ecx + 8]
cmp edx, dword [ecx]
jl 0x442940
mov esi, dword [ebp - 0x458]
mov eax, dword [ebp - 0x48c]
inc esi
mov dword [ebp - 0x458], esi
cmp esi, dword [eax]
jl 0x442883
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x444]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
mov edx, dword [0x4a7b70]
mov esi, dword [edx + 0x80]
mov ecx, esi
mov dword [ebp - 0x440], esi
movzx eax, word [ecx]
test ax, ax
je 0x442a9b
mov edi, edi
cwde
sub ecx, eax
movzx eax, word [ecx]
test ax, ax
jne 0x442a90
mov eax, dword [ebp - 0x444]
sub ecx, esi
cmp eax, ecx
je 0x442adb
mov ebx, dword [ebp - 0x438]
mov esi, 5
jmp 0x440e7d
mov eax, dword [ebp - 0x458]
test eax, eax
je 0x442aca
push eax
call fcn.00467c86
add esp, 4
mov esi, dword [ebp - 0x434]
mov ebx, dword [ebp - 0x438]
jmp 0x440e7d
test eax, eax
je 0x442c35
cmp word [esi], 0
je 0x442c35
lea ecx, [ecx]
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [esi + 4]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 2
jb 0x442e3a
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [esi + 6]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 2
jb 0x442e3a
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [esi + 8]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 2
jb 0x442e3a
push 0
lea eax, [ebp - 0x430]
push eax
push 2
lea eax, [esi + 0xa]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 2
jb 0x442e3a
mov eax, dword [ebp - 0x440]
add esi, 0xe
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
add ecx, eax
mov dword [ebp - 0x454], ecx
test ecx, ecx
jle 0x442c14
lea esp, [esp]
push 0
lea eax, [ebp - 0x430]
push eax
push 1
lea eax, [esi + 0xa]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 1
jb 0x442e3a
push 0
lea eax, [ebp - 0x430]
push eax
push 1
lea eax, [esi + 0xb]
push eax
push edi
call ebx
test eax, eax
je 0x442e3a
cmp dword [ebp - 0x430], 1
jb 0x442e3a
movsx eax, word [esi]
add esi, eax
mov eax, dword [ebp - 0x454]
dec eax
mov dword [ebp - 0x454], eax
test eax, eax
jg 0x442bb0
mov esi, dword [ebp - 0x440]
movsx eax, word [esi]
sub esi, eax
mov dword [ebp - 0x440], esi
cmp word [esi], 0
jne 0x442af0
mov edx, dword [0x4a7b70]
mov esi, dword [edx + 0x80]
cmp word [esi], 0
je 0x442c7b
movzx edx, byte [esi + 2]
lea ecx, [esi + 0xe]
test edx, edx
jle 0x442c70
lea esp, [esp]
cmp dword [ecx + 2], 0xfffffffa
jne 0x442c66
mov eax, dword [0x4a7b74]
mov ax, word [eax + 0xd0]
mov word [esi + 6], ax
movsx eax, word [ecx]
dec edx
add ecx, eax
test edx, edx
jg 0x442c50
movsx eax, word [esi]
sub esi, eax
cmp word [esi], 0
jne 0x442c41
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x4a0]
push eax
push edi
mov dword [ebp - 0x4a0], 0
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
cmp dword [ebp - 0x4a0], 0
je 0x442e83
mov eax, dword [0x4a7b74]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x978]
mov eax, dword [0x4a7b70]
mov eax, dword [eax + 0x974]
test eax, eax
je 0x442aca
push 0
lea ecx, [ebp - 0x430]
push ecx
push 8
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 8
jb 0x442aca
mov ecx, dword [0x4a7b70]
mov eax, dword [ecx + 0x974]
cmp dword [eax], 0xd
jne 0x442e67
push 0
lea eax, [ebp - 0x430]
push eax
push 0xc
lea eax, [ebp - 0x428]
push eax
push edi
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 0xc
jb 0x442aca
test esi, esi
je 0x442d53
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x54]
cmp eax, dword [ebp - 0x428]
je 0x442d7c
push dword [0x4a7b70]
call fcn.00420810
mov eax, dword [0x4a7b74]
push dword [ebp - 0x428]
mov eax, dword [eax + 0x4f4]
push dword [eax + 0x34]
call fcn.004332a0
add esp, 0xc
mov esi, eax
mov eax, dword [0x4a7b74]
mov eax, dword [eax + 0x1c]
mov dword [eax + 0x978], esi
test esi, esi
je 0x442d9b
mov eax, dword [esi]
push dword [ebp - 0x424]
mov ecx, esi
call dword [eax + 0x38]
mov eax, dword [ebp - 0x420]
test eax, eax
je 0x442e74
mov dword [ebp - 0x44c], 0
jle 0x442e74
lea esp, [esp]
push 0
lea eax, [ebp - 0x430]
push eax
push 4
lea eax, [ebp - 0x440]
push eax
push edi
mov dword [ebp - 0x440], 0
call ebx
test eax, eax
je 0x442aca
cmp dword [ebp - 0x430], 4
jb 0x442aca
test esi, esi
je 0x442e23
mov eax, dword [esi]
push dword [ebp - 0x44c]
mov ecx, esi
call dword [eax + 0x18]
sub eax, 0
je 0x442e10
dec eax
je 0x442e4a
dec eax
jne 0x442e23
push dword [ebp - 0x440]
mov eax, dword [esi]
push dword [ebp - 0x44c]
mov ecx, esi
call dword [eax + 0x40]
mov eax, dword [ebp - 0x44c]
inc eax
mov dword [ebp - 0x44c], eax
cmp eax, dword [ebp - 0x420]
jl 0x442dc0
jmp 0x442e74
mov ebx, dword [ebp - 0x438]
mov esi, 1
jmp 0x440e7d
movss xmm0, dword [ebp - 0x440]
mov eax, dword [esi]
push ecx
mov ecx, esi
movss dword [esp], xmm0
push dword [ebp - 0x44c]
call dword [eax + 0x44]
jmp 0x442e23
test esi, esi
jne 0x442e74
push ecx
call fcn.00420810
add esp, 4
mov eax, dword [0x4a7b74]
mov eax, dword [eax + 0x1c]
mov byte [eax + 0x97c], 1
xor esi, esi
jmp 0x440e78
mov esi, 1
xor ebx, ebx
jmp 0x440e7d
mov ebx, esi
jmp 0x440e7d
call fcn.0046808b
int3