Function at 0x480850
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4e73c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xfc
mov eax, dword [esp + 0x10c]
push ebx
push ebp
push esi
xor esi, esi
cmp word [eax], 0x23
push edi
mov dword [esp + 0x54], ecx
mov byte [esp + 0x12], 0
jne 0x480896
add eax, 2
mov dword [esp + 0x11c], eax
mov byte [esp + 0x12], 1
lea ecx, [esp + 0x11c]
push ecx
call fcn.0041676d
lea edx, [esp + 0x120]
push edx
call fcn.0043f2e0
push 4
call fcn.00445f00
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x40], eax
je 0x4808c5
mov word [eax], si
push 2
mov dword [esp + 0x118], esi
mov dword [esp + 0x18], esi
call fcn.00445f00
add esp, 4
cmp eax, esi
mov dword [esp + 0x14], eax
je 0x4808e5
mov word [eax], si
push 4
mov dword [esp + 0x24], esi
call fcn.00445f00
add esp, 4
cmp eax, esi
mov dword [esp + 0x20], eax
je 0x4808fe
mov word [eax], si
push 4
mov dword [esp + 0x1c], esi
call fcn.00445f00
add esp, 4
cmp eax, esi
mov dword [esp + 0x18], eax
je 0x480917
mov word [eax], si
push 2
mov dword [esp + 0x20], esi
call fcn.00445f00
add esp, 4
cmp eax, esi
mov dword [esp + 0x1c], eax
je 0x480930
mov word [eax], si
mov eax, dword [esp + 0x11c]
push 5
push eax
push str._find
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
call fcn.004403f0
add esp, 0xc
test al, al
mov byte [esp + 0x4f], al
je 0x480988
mov edi, dword [esp + 0x11c]
lea ecx, [esp + 0x11c]
add edi, 0xa
push ecx
mov dword [esp + 0x120], edi
call fcn.0043f2e0
add esp, 4
push 2
mov dword [esp + 0x78], esi
mov dword [esp + 0x84], esi
mov byte [esp + 0x17], 0
call fcn.00445f00
mov ebp, eax
add esp, 4
cmp ebp, esi
mov dword [esp + 0x2c], ebp
je 0x4809b0
mov word [ebp], si
push 2
call fcn.00445f00
add esp, 4
cmp eax, esi
mov dword [esp + 0x50], eax
je 0x4809c5
mov word [eax], si
mov edx, dword [esp + 0x11c]
mov byte [esp + 0x114], 6
mov eax, edx
mov ecx, 0x4f67e0
mov esi, 2
movzx edi, word [eax]
movsx ebx, byte [ecx]
or edi, 0x20
or ebx, 0x20
add eax, 2
inc ecx
cmp ebx, edi
jne 0x480afc
dec esi
jns 0x4809e0
add edx, 6
mov dword [esp + 0x11c], edx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x120]
push eax
call fcn.00449a90
mov eax, dword [esp + 0x124]
add esp, 8
cmp word [eax], 0x40
jne 0x480ae1
add eax, 2
lea ecx, [esp + 0x11c]
push ecx
mov dword [esp + 0x120], eax
mov ebp, eax
call fcn.0041676d
mov edx, dword [esp + 0x120]
mov si, word [edx]
lea eax, [esp + 0x120]
push eax
call fcn.0043f2e0
xor edi, edi
add esp, 8
cmp si, di
je 0x480a81
mov eax, dword [esp + 0x11c]
sub eax, 2
mov dword [esp + 0x11c], eax
mov word [eax], di
add dword [esp + 0x11c], 2
mov ecx, dword [esp + 0x54]
mov al, byte [ecx + 0x8a]
test al, al
jne 0x480aa5
test byte [ecx + 0xb], 0xf
jne 0x480aa5
push 1
push edi
lea edx, [esp + 0x34]
push edx
push ebp
call fcn.004531a0
jmp 0x480ab3
push 1
push edi
lea eax, [esp + 0x34]
push eax
push ebp
call fcn.00451c30
mov ebp, dword [esp + 0x2c]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [esp + 0x11c]
add eax, 8
push ecx
mov dword [esp + 0x84], eax
call fcn.0043f2e0
mov edx, dword [esp + 0x120]
add esp, 4
jmp 0x480afe
lea ecx, [esp + 0x11c]
push ecx
xor edi, edi
call fcn.0043f2e0
mov edx, dword [esp + 0x120]
add esp, 4
jmp 0x480afe
xor edi, edi
mov ebx, dword [esp + 0x54]
mov al, byte [ebx + 0x8a]
test al, al
jne 0x480b24
test byte [ebx + 0xb], 0xf
jne 0x480b24
push 1
push edi
lea eax, [esp + 0x58]
push eax
push edx
mov ecx, ebx
call fcn.004531a0
jmp 0x480b34
push 1
push edi
lea ecx, [esp + 0x58]
push ecx
push edx
mov ecx, ebx
call fcn.00451c30
mov esi, dword [esp + 0x50]
push 4
push esi
push str._bin
mov dword [esp + 0x128], esi
call fcn.004403f0
add esp, 0xc
test al, al
je 0x480b72
lea eax, [esp + 0x11c]
lea edx, [esi + 8]
push eax
mov dword [esp + 0x120], edx
call fcn.0043f2e0
add esp, 4
mov byte [esp + 0x13], 1
push edi
push 0x2c
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x128]
push edx
mov ecx, ebx
call fcn.0043b730
mov eax, dword [esp + 0x14]
cmp word [eax], di
jne 0x480c46
cmp esi, edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x480bae
mov ecx, dword [0x51927c]
add esi, 0xfffffff8
push esi
push edi
push ecx
call ebx
cmp ebp, edi
je 0x480bc0
mov edx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push edi
push edx
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x480bd5
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x18]
cmp eax, edi
mov dword [esp + 0x1c], edi
je 0x480bef
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x20]
cmp eax, edi
mov dword [esp + 0x18], edi
je 0x480c09
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x14]
cmp eax, edi
mov dword [esp + 0x20], edi
je 0x480c22
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x40]
cmp eax, edi
mov dword [esp + 0x14], edi
je 0x480c3c
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, 1
jmp 0x481c7a
push edi
push 0x2c
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x128]
push eax
call fcn.0043b790
mov ecx, dword [esp + 0x30]
add esp, 0x10
cmp word [ecx], di
jne 0x480d1b
cmp esi, edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x480c83
mov edx, dword [0x51927c]
add esi, 0xfffffff8
push esi
push edi
push edx
call ebx
cmp ebp, edi
je 0x480c94
mov eax, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push edi
push eax
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x480caa
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x18]
cmp eax, edi
mov dword [esp + 0x1c], edi
je 0x480cc4
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x20]
cmp eax, edi
mov dword [esp + 0x18], edi
je 0x480cdd
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x14]
cmp eax, edi
mov dword [esp + 0x20], edi
je 0x480cf7
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x40]
cmp eax, edi
mov dword [esp + 0x14], edi
je 0x480d11
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, 1
jmp 0x481c7a
push edi
push 0x2c
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x128]
push ecx
mov ecx, ebx
call fcn.0043b730
mov edx, dword [esp + 0x18]
cmp word [edx], di
jne 0x480dee
cmp esi, edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x480d56
mov eax, dword [0x51927c]
add esi, 0xfffffff8
push esi
push edi
push eax
call ebx
cmp ebp, edi
je 0x480d68
mov ecx, dword [0x51927c]
add ebp, 0xfffffff8
push ebp
push edi
push ecx
call ebx
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x480d7e
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x18]
cmp eax, edi
mov dword [esp + 0x1c], edi
je 0x480d97
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, dword [esp + 0x20]
cmp eax, edi
mov dword [esp + 0x18], edi
je 0x480db1
mov ecx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push ecx
call ebx
mov eax, dword [esp + 0x14]
cmp eax, edi
mov dword [esp + 0x20], edi
je 0x480dcb
mov edx, dword [0x51927c]
add eax, 0xfffffff8
push eax
push edi
push edx
call ebx
mov eax, dword [esp + 0x40]
cmp eax, edi
mov dword [esp + 0x14], edi
je 0x480de4
add eax, 0xfffffff8
push eax
mov eax, dword [0x51927c]
push edi
push eax
call ebx
mov eax, 1
jmp 0x481c7a
push edi
push 0x2c
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x128]
push edx
mov ecx, ebx
call fcn.0043b730
mov al, byte [esp + 0x4f]
test al, al
je 0x480e1a
mov eax, dword [esp + 0x1c]
cmp word [eax], di
je 0x481546
lea ecx, [esp + 0x8c]
call fcn.004151e7
mov al, byte [esp + 0x13]
test al, al
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x114], 7
mov dword [esp + 0x24], ecx
jne 0x480f08
lea edx, [esp + 0x24]
push 1
push edx
call fcn.00451930
mov esi, eax
add esp, 8
cmp esi, edi
je 0x480f08
cmp word [esi], 0x23
jne 0x480f08
mov ebx, dword [0x51907c]
mov di, word [esi]
mov eax, dword [esp + 0x24]
xor ebp, ebp
mov word [esi], bp
cmp word [eax], bp
je 0x480e8a
push 2
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov ebp, eax
mov ebx, ebp
mov word [esi], di
add esi, 2
mov dword [esp + 0x48], 0x20
cmp word [esi], 0x2e
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], 0
jne 0x480ebe
mov word [esi], 0x23
add esi, 2
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], 0x40
test ebx, ebx
je 0x480efb
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x28]
push ecx
call fcn.00451840
movzx edx, byte [esp + 0x50]
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x54], edx
lea edx, [esp + 0x98]
push edx
push eax
mov eax, dword [esp + 0x50]
push eax
push ebx
call fcn.00422b90
add esp, 0x1c
mov byte [esp + 0x13], 2
test ebp, ebp
je 0x480f06
push ebp
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor edi, edi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x78], esi
mov dword [esp + 0x14], edi
push esi
mov byte [esp + 0x118], 8
call fcn.0042063d
add esp, 4
push eax
lea ecx, [esp + 0x18]
call fcn.004574e0
cmp esi, edi
mov ebx, dword [sym.imp.KERNEL32.dll_HeapFree]
je 0x480f47
mov ecx, dword [0x51927c]
add esi, 0xfffffff8
push esi
push edi
push ecx
call ebx
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x78], esi
mov dword [esp + 0x1c], edi
push esi
mov byte [esp + 0x118], 9
call fcn.0042063d
add esp, 4
push eax
lea ecx, [esp + 0x20]
call fcn.004574e0
cmp esi, edi
mov byte [esp + 0x114], 7
je 0x480f88
mov edx, dword [0x51927c]
add esi, 0xfffffff8
push esi
push edi
push edx
call ebx
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x120]
push edx
mov dword [esp + 0x90], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x124], eax
call fcn.0044d230
mov eax, dword [esp + 0x124]
add esp, 8
cmp word [eax], 0x23
jne 0x481106
mov esi, 2
add eax, esi
mov dword [esp + 0x11c], eax
cmp word [eax], 0x2a
sete cl
test cl, cl
je 0x481003
add eax, esi
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x38], SysReAllocStringLen
mov dword [esp + 0x11c], eax
jmp 0x48101f
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x120]
push ecx
call fcn.0044d230
mov eax, dword [esp + 0x124]
add esp, 8
cmp word [eax], 0x23
jne 0x481106
add eax, esi
lea edx, [esp + 0x64]
mov dword [esp + 0x11c], eax
push edx
lea eax, [esp + 0x120]
push eax
call fcn.0044d230
add esp, 8
test eax, eax
jle 0x481056
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x11c]
cmp word [edx], 0x23
jne 0x481106
mov eax, edx
add eax, esi
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x120]
push ecx
call fcn.0044d230
add esp, 8
test eax, eax
jle 0x481093
mov edx, dword [esp + 0x64]
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x11c]
cmp word [eax], 0x23
jne 0x481106
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x120]
add eax, esi
push edx
mov dword [esp + 0x124], eax
call fcn.0044d230
add esp, 8
test eax, eax
jle 0x4810ca
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x11c]
cmp word [ecx], 0x23
jne 0x481106
lea edx, [esp + 0x64]
mov ebp, ecx
push edx
lea eax, [esp + 0x120]
add ebp, esi
push eax
mov dword [esp + 0x124], ebp
call fcn.0044d230
add esp, 8
test eax, eax
jle 0x481106
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x84], ecx
lea edx, [esp + 0x11c]
push edx
call fcn.0043f2e0
mov eax, dword [esp + 0x18]
add esp, 4
xor ebx, ebx
xor esi, esi
cmp word [eax], 0x75
jne 0x481212
cmp word [eax + 2], 0x64
jne 0x481212
mov edx, 0x3a
cmp word [eax + 4], dx
jne 0x481212
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x34]
add eax, 6
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x38]
xor ebp, ebp
cmp word [eax], 0x22
mov dword [esp + 0x6c], eax
mov byte [esp + 0x13], 4
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x5c], edi
jne 0x48118d
add eax, 2
mov dword [esp + 0x6c], eax
mov esi, eax
lea eax, [esp + 0x6c]
call fcn.00445b70
mov eax, dword [esp + 0x6c]
cmp eax, esi
je 0x4811ab
cmp word [eax - 2], 0x22
jne 0x4811ab
mov word [eax - 2], di
cmp word [eax], dx
jne 0x4811b6
mov word [eax], di
add eax, 2
cmp word [eax], 0x22
mov edx, eax
jne 0x4811d8
lea edx, [eax + 2]
mov cx, word [eax + 2]
add eax, 2
cmp cx, 0x22
je 0x4811d5
cmp cx, di
jne 0x4811c1
jmp 0x4811d8
mov word [eax], di
lea eax, [esp + 0x98]
push eax
push edi
push 0x10000
push edx
lea ecx, [esp + 0x9c]
push ecx
push esi
call fcn.00464c00
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
add esp, 0x18
lea ebx, [eax + edx]
jmp 0x481222
mov al, byte [esp + 0x13]
test al, al
je 0x4813de
mov ebp, dword [esp + 0x58]
push 0x5194ec
mov dword [esp + 0x40], 0x5194ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea ecx, [esp + 0x28]
call fcn.00446250
mov al, byte [esp + 0x13]
cmp al, 1
mov byte [esp + 0x114], 0xb
jne 0x481284
mov esi, dword [esp + 0x54]
push edi
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.004152c8
mov edx, dword [esp + 0x14]
push 0xffffffffffffffff
push edi
push edx
mov ecx, esi
call fcn.0041e533
cmp eax, edi
je 0x4813c8
mov esi, dword [eax + 0xc]
mov ebx, dword [eax + 4]
and esi, 0x3fffffff
jmp 0x481296
cmp al, 2
jne 0x481296
mov esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
cmp ebp, esi
mov eax, ebp
jle 0x48129e
mov eax, esi
mov ecx, dword [esp + 0x38]
mov ebp, dword [esp + 0x34]
sub esi, eax
add ebx, eax
mov eax, esi
cdq
cmp ecx, edx
jl 0x4812bb
jg 0x4812b9
mov ecx, ebp
cmp ecx, eax
jbe 0x4812bb
mov ebp, esi
mov al, byte [esp + 0x12]
test al, al
je 0x4812f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
push edi
push edi
push ebp
push ebx
push eax
push ecx
call fcn.0045f260
add esp, 0x18
lea ecx, [esp + 0x28]
call fcn.0043f290
lea ecx, [esp + 0x3c]
call fcn.004151a3
jmp 0x481755
mov ecx, dword [esp + 0x74]
cmp ecx, edi
lea esi, [ebp + ebp*4 + 0xa]
jle 0x481311
mov eax, ebp
cdq
idiv ecx
mov edx, dword [esp + 0x80]
add edx, 2
inc eax
imul eax, edx
add esi, eax
mov ecx, dword [esp + 0x28]
lea eax, [esi + esi + 0xe]
push ecx
call fcn.00445f60
add esp, 4
cmp eax, edi
mov dword [esp + 0x28], eax
je 0x48132f
mov word [eax + esi*2 + 0xc], di
mov eax, dword [esp + 0x28]
xor edi, edi
dec ebp
mov esi, eax
js 0x4813bf
inc ebp
mov dword [esp + 0x24], ebp
mov ebp, dword [sym.imp.USER32.dll_wsprintfW]
lea esp, [esp]
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x48139d
mov eax, edi
cdq
idiv dword [esp + 0x74]
test edx, edx
jne 0x48139d
test edi, edi
jle 0x481377
mov word [esi], 0xd
add esi, 2
mov word [esi], 0xa
add esi, 2
mov eax, dword [esp + 0x80]
test eax, eax
je 0x48139d
mov edx, dword [esp + 0x2c]
push edx
push edi
push str._8X_s
push esi
call ebp
mov eax, dword [esp + 0x90]
add esp, 0x10
lea esi, [esi + eax*2]
movzx eax, byte [ebx]
push eax
push 0x4f28cc
push esi
call ebp
mov ecx, dword [esp + 0x30]
add esp, 0xc
add esi, 0xa
inc ebx
inc edi
dec ecx
lea eax, [esi - 2]
mov dword [esp + 0x24], ecx
jne 0x481350
mov esi, dword [esp + 0x54]
mov word [eax], 0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push ecx
push edx
mov ecx, esi
call fcn.00444550
jmp 0x4812d9
push 0x7a
call fcn.00445f00
add esp, 4
cmp eax, edi
mov dword [esp + 0x30], eax
je 0x4813f3
mov word [eax], di
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x11c], 0xc
mov dword [esp + 0x2c], edi
call fcn.00451070
add esp, 8
test al, al
mov byte [esp + 0x28], al
jge 0x481477
lea ecx, [esp + 0x30]
call fcn.0043f290
lea ecx, [esp + 0x8c]
call fcn.00415ebc
lea ecx, [esp + 0x50]
call fcn.0043f290
lea ecx, [esp + 0x2c]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x40]
call fcn.0043f290
mov eax, 0x80070057
jmp 0x481c7a
xor ebp, ebp
mov dword [esp + 0x98], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x70], ebp
or edi, 0xffffffff
mov ebx, edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], edi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x6c], edi
mov dword [esp + 0x44], ebp
mov edx, dword [esp + 0x14]
push ebp
push ebp
push 3
push ebp
push 3
push SysReAllocStringLen
push edx
lea ecx, [esp + 0x60]
mov byte [esp + 0x130], 0x10
call fcn.004167bc
cmp byte [esp + 0x28], 0x11
mov esi, dword [esp + 0x44]
jne 0x48158f
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x64]
push eax
push ecx
push esi
call fcn.00450f00
add esp, 0xc
cmp edx, ebp
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jg 0x4815c2
jl 0x48150a
cmp eax, ebp
jae 0x4815c2
lea ecx, [esp + 0x44]
call fcn.004167b7
lea ecx, [esp + 0x70]
call fcn.004167b7
lea ecx, [esp + 0x48]
call fcn.0043f290
lea ecx, [esp + 0x98]
call fcn.0043f230
lea ecx, [esp + 0x30]
call fcn.0043f290
lea ecx, [esp + 0x8c]
call fcn.00415ebc
lea ecx, [esp + 0x50]
call fcn.0043f290
lea ecx, [esp + 0x2c]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x40]
call fcn.0043f290
mov eax, 1
jmp 0x481c7a
cmp esi, ebp
je 0x4815ca
mov al, byte [esp + 0x28]
test al, al
jne 0x4815ae
push 2
push ebp
push ebp
push esi
call fcn.004403b0
add esp, 0x10
mov ebx, eax
mov edi, edx
jmp 0x4815ca
mov edx, dword [esp + 0x28]
push edx
push esi
call fcn.004435c0
add esp, 8
mov ebx, eax
mov edi, edx
jmp 0x4815ca
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov al, byte [esp + 0x4f]
test al, al
je 0x4817a7
mov eax, 0xffffffff
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c]
xor ebp, ebp
xor esi, esi
cmp word [eax], 0x2a
push ebp
jne 0x481615
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x5c]
add eax, 2
push eax
call fcn.004524d0
mov ebp, dword [esp + 0x48]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
shl esi, 1
jmp 0x481683
push 0
push 3
push 0
push 3
push SysReAllocStringLen
push eax
lea ecx, [esp + 0x8c]
call fcn.004167bc
mov eax, dword [esp + 0x70]
test eax, eax
je 0x481683
push 2
push 0
mov edx, eax
push 0
push edx
call fcn.004403b0
add esp, 0x10
test edx, edx
jl 0x481662
jg 0x481655
cmp eax, 0x20000000
jbe 0x481662
mov eax, 0x20000000
mov dword [esp + 0x68], 0
push 0
push 0
mov esi, eax
cdq
push 2
push edx
push eax
mov eax, dword [esp + 0x84]
push eax
lea ecx, [esp + 0xb0]
call fcn.00445e80
mov ebp, eax
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x48168f
add ebp, eax
sub esi, eax
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x4816a0
cmp esi, eax
jle 0x4816a0
mov esi, eax
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4816f5
test ebp, ebp
je 0x4816f5
test esi, esi
jle 0x4816f5
mov eax, dword [esp + 0x60]
test eax, eax
jl 0x4816f5
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x38]
mov edx, eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x58]
push eax
push ecx
push esi
push ebp
push edi
push ebx
push edx
call fcn.004512a0
add esp, 0x30
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
lea edx, [esp + 0xb0]
push edx
call fcn.004458f0
mov ecx, dword [esp + 0x24]
add esp, 0xc
lea eax, [esp + 0xa8]
push eax
push ecx
mov ecx, dword [esp + 0x5c]
call fcn.00444550
lea ecx, [esp + 0x44]
call fcn.004167b7
lea ecx, [esp + 0x70]
call fcn.004167b7
lea ecx, [esp + 0x48]
call fcn.0043f290
lea ecx, [esp + 0x98]
call fcn.0043f230
lea ecx, [esp + 0x30]
call fcn.0043f290
lea ecx, [esp + 0x8c]
call fcn.00415ebc
lea ecx, [esp + 0x50]
call fcn.0043f290
lea ecx, [esp + 0x2c]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x40]
call fcn.0043f290
xor eax, eax
jmp 0x481c7a
cmp esi, ebp
mov dword [esp + 0x88], ebp
je 0x481b94
cmp dword [esp + 0x5c], ebp
jl 0x481b94
mov ebp, dword [esp + 0x58]
jg 0x4817ce
test ebp, ebp
jb 0x481b94
cmp dword [esp + 0x5c], edi
jg 0x481b94
jl 0x4817e2
cmp ebp, ebx
ja 0x481b94
mov al, byte [esp + 0x28]
test al, al
jne 0x4817fe
test edi, edi
jl 0x481b60
jg 0x48181c
test ebx, ebx
jbe 0x481b60
jmp 0x48181c
test edi, edi
jg 0x48181c
jl 0x481808
test ebx, ebx
jae 0x481812
or ebx, 0xffffffff
mov edi, 0x7fffffff
jmp 0x48181c
test edi, edi
jl 0x481849
jg 0x48181c
test ebx, ebx
jbe 0x481849
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
mov eax, ebx
sub eax, ebp
sbb edi, edx
cmp edi, ecx
jg 0x481849
jl 0x481838
mov edi, dword [esp + 0x34]
cmp eax, edi
jae 0x48184d
mov eax, ebx
sub eax, ebp
cdq
mov edi, eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edx
jmp 0x48184d
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x74]
test ecx, ecx
lea ebx, [edi + edi*4 + 0xa]
jle 0x48186e
mov eax, edi
cdq
idiv ecx
mov edx, dword [esp + 0x80]
add edx, 2
inc eax
imul eax, edx
add ebx, eax
mov al, byte [esp + 0x12]
test al, al
je 0x481880
lea eax, [edi + 1]
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
lea eax, [ebx + 4]
push eax
lea ecx, [esp + 0x34]
call fcn.004462b0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48150a
mov cl, byte [esp + 0x12]
test cl, cl
mov dword [esp + 0x11c], eax
mov word [eax], 0
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x60], eax
je 0x4818c9
mov byte [edi + eax], 0
mov ecx, dword [esp + 0x11c]
mov word [ecx + ebx*2], 0
mov edx, dword [esp + 0x78]
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x7c]
mov al, byte [esp + 0x28]
add ebp, edx
adc edi, ecx
xor esi, esi
test al, al
je 0x4818f2
push esi
push 0x200
push edi
push ebp
call fcn.004b1940
mov esi, eax
movzx eax, si
cdq
sub ebp, eax
push 0
sbb edi, edx
mov edx, dword [esp + 0x48]
push edi
push ebp
push edx
call fcn.004403b0
push 0x101801
call fcn.00445f00
add esp, 0x14
test eax, eax
mov dword [esp + 0x78], eax
je 0x481920
mov byte [eax], 0
mov ebx, dword [esp + 0x38]
xor edi, edi
add eax, 0x1000
and eax, 0xfffff000
cmp ebx, edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x24], edi
jl 0x481b20
jg 0x481960
cmp dword [esp + 0x34], edi
jbe 0x481b20
jmp 0x481960
movzx esi, si
mov ebp, 0x100000
sub ebp, esi
mov eax, ebp
cdq
cmp edx, ebx
jl 0x48197d
jg 0x481979
cmp eax, dword [esp + 0x34]
jbe 0x48197d
mov ebp, dword [esp + 0x34]
mov cl, byte [esp + 0x28]
test cl, cl
lea eax, [esi + ebp]
je 0x48199c
add eax, 0x1ff
cdq
and edx, 0x1ff
add eax, edx
sar eax, 9
shl eax, 9
mov edx, dword [esp + 0x3c]
push 0
lea ecx, [esp + 0x68]
push ecx
push eax
mov eax, dword [esp + 0x50]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [esp + 0x12]
test al, al
je 0x4819f6
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x60]
add esi, edx
mov ecx, ebp
mov edx, ecx
shr ecx, 2
mov edi, eax
rep movsd dword es:[edi], dword [esi]
add eax, ebp
mov ecx, edx
and ecx, 3
mov dword [esp + 0x60], eax
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x58]
mov eax, ebp
cdq
sub ecx, eax
mov dword [esp + 0x34], ecx
sbb ebx, edx
jmp 0x481b08
dec ebp
js 0x481b08
mov eax, dword [esp + 0x3c]
add esi, eax
inc ebp
mov dword [esp + 0x84], ebp
jmp 0x481a10
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x481a9e
mov ebp, dword [esp + 0x5c]
cdq
push edx
push eax
push ebp
push edi
call fcn.004b1940
or eax, edx
jne 0x481a9e
test ebp, ebp
jl 0x481a62
jg 0x481a38
test edi, edi
jbe 0x481a62
mov ecx, dword [esp + 0x11c]
mov word [ecx], 0xd
mov eax, dword [esp + 0x11c]
add eax, 2
mov dword [esp + 0x11c], eax
mov word [eax], 0xa
add dword [esp + 0x11c], 2
mov ebp, dword [esp + 0x80]
test ebp, ebp
je 0x481a9e
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x11c]
push edx
push eax
push str._8X_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov edx, dword [esp + 0x12c]
lea eax, [edx + ebp*2]
add esp, 0x10
mov dword [esp + 0x11c], eax
movzx ecx, byte [esi]
mov edx, dword [esp + 0x11c]
push ecx
push 0x4f28cc
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ebp, dword [esp + 0x128]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x68]
add ebp, 0xa
add esp, 0xc
inc edx
add edi, 1
adc eax, 0
mov dword [esp + 0x11c], ebp
mov ebp, dword [esp + 0x34]
add ebp, 0xffffffff
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x84]
adc ebx, 0xffffffff
inc esi
dec eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x84], eax
jne 0x481a10
mov dword [esp + 0x58], edi
xor esi, esi
test ebx, ebx
jg 0x481960
jl 0x481b20
mov eax, dword [esp + 0x34]
test eax, eax
ja 0x481960
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x11c]
cmp eax, ecx
je 0x481b78
mov dl, byte [esp + 0x12]
test dl, dl
je 0x481b40
mov eax, dword [esp + 0x60]
mov byte [eax], 0
jmp 0x481b7c
sub eax, 2
mov dword [esp + 0x11c], eax
mov word [eax], 0
mov esi, dword [esp + 0x6c]
lea ecx, [esp + 0x78]
call fcn.0043f290
test esi, esi
jge 0x481bd5
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x58]
push edx
call fcn.00444550
jmp 0x481bf8
mov eax, dword [esp + 0x60]
mov dl, byte [esp + 0x12]
test dl, dl
je 0x481b4f
mov esi, eax
sub esi, ecx
mov dword [esp + 0x6c], esi
mov dword [eax], 0
jmp 0x481b53
test edi, edi
jg 0x481bb9
jl 0x481b9e
test ebx, ebx
jae 0x481bb9
push str.0xFFFFFFFF
lea ecx, [esp + 0x34]
call fcn.004574e0
mov dword [esp + 0x88], 1
jmp 0x481b60
mov eax, dword [esp + 0x30]
push edi
push ebx
push eax
call fcn.004458f0
add esp, 0xc
mov dword [esp + 0x88], 1
jmp 0x481b60
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x30]
push 1
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x60]
push edx
push eax
push ecx
call fcn.0045f260
add esp, 0x18
lea ecx, [esp + 0x44]
call fcn.004167b7
lea ecx, [esp + 0x70]
call fcn.004167b7
lea ecx, [esp + 0x48]
call fcn.0043f290
lea ecx, [esp + 0x98]
call fcn.0043f230
lea ecx, [esp + 0x30]
call fcn.0043f290
lea ecx, [esp + 0x8c]
call fcn.00415ebc
lea ecx, [esp + 0x50]
call fcn.0043f290
lea ecx, [esp + 0x2c]
call fcn.0043f290
lea ecx, [esp + 0x1c]
call fcn.0043f290
lea ecx, [esp + 0x18]
call fcn.0043f290
lea ecx, [esp + 0x20]
call fcn.0043f290
lea ecx, [esp + 0x14]
call fcn.0043f290
lea ecx, [esp + 0x40]
call fcn.0043f290
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x108
ret 8