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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, esp
mov dword [esi + 0x90], ebp
mov dword [esi + 0x94], esp
mov dword [esi + 0xa0], 0xffffffff
mov dword [esi + 0x9c], 0x47da90
mov dword [esi + 4], ecx
lea ecx, [esi + 0x98]
lea ebx, [esi + 0x40]
call 0x4691b2
pop eax
mov dword [esi + 0x3c], edx
mov edi, dword fs:[0]
mov dword [esi + 0x8c], eax
mov dword [esi + 0x98], edi
mov dword fs:[0], ecx
mov ecx, ebx
mov edi, dword [edx]
mov edx, edi
call fcn.00468520
mov eax, dword [esi + 0x40]
xor eax, 2
or eax, dword [esi + 0x44]
jne 0x46922e
cmp byte [esi + 0x48], 3
jne 0x4692e6
mov eax, dword [esi + 0x4c]
mov ecx, dword [eax]
mov dword [esi + 0x18], eax
mov eax, dword [eax + 4]
mov dword [esi + 0xa0], 0
mov dword [esi + 0xc], ecx
push ecx
mov dword [esi], eax
call dword [eax]
add esp, 4
mov eax, dword [esi]
cmp dword [eax + 4], 0
je 0x4692d5
cmp dword [eax + 8], 9
jae 0x4692c0
mov eax, dword [esi + 0xc]
jmp 0x4692c6
mov eax, dword [esi + 0x78]
mov dword [esi], eax
mov eax, ebx
mov ebx, dword [esi + 0x7c]
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
push 1
push eax
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x4692b8
mov ecx, dword [esi]
xor eax, eax
sub ecx, dword [esi + 0x40]
sbb ebx, dword [esi + 0x44]
cmovb ecx, eax
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov edi, dword [eax + 8]
mov eax, edx
mov dword [esi + 0x1c], edi
sub eax, edi
cmp eax, ecx
jae 0x469667
add edi, ecx
lea eax, [esi + 0x40]
jb 0x46963f
mov ebx, ecx
mov ecx, edx
mov edx, edi
not edx
mov dword [esi + 0x20], ecx
shr edx, 0x1f
test ecx, ecx
je 0x469616
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
lea eax, [esi + 0x40]
mov dword [esi + 0x44], 1
mov dword [esi + 0x48], ecx
jmp 0x46961d
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4692e6
mov eax, dword [esi + 0xc]
mov eax, dword [eax - 4]
push eax
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esi + 0x18]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov edi, dword [eax + 8]
lea ecx, [eax + 8]
mov al, 1
mov dword [esi + 0x38], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x10], 0x2000
test ebx, ebx
mov ecx, dword [esi + 0x24]
not cl
mov ebx, edx
mov dword [esi + 0x20], edx
setne al
test cl, al
mov ecx, edi
jne 0x46935e
mov eax, edx
mov ebx, edx
mov ecx, edi
sub eax, edi
cmp eax, 0x20
jae 0x46935e
mov edx, dword [esi + 0x3c]
mov dword [esi + 0xa0], 0xffffffff
lea ecx, [esi + 0x40]
push dword [ebp + 8]
call fcn.00468f60
add esp, 4
movzx eax, byte [esi + 0x40]
cmp al, 4
jne 0x4695da
cmp dword [esi + 0x44], 0
je 0x4695f6
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x20]
mov ebx, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [esi + 0x3c]
mov dword [esi + 0x1c], edi
xor edi, edi
mov eax, dword [eax]
mov dword [esi], eax
cmp ecx, ebx
jne 0x4693ab
cmp ebx, edx
jne 0x4693ab
mov edx, dword [esi + 0x3c]
mov dword [esi + 0xa0], 0xffffffff
lea ecx, [esi + 0x40]
push dword [ebp + 8]
call fcn.00468f60
add esp, 4
movzx eax, byte [esi + 0x40]
cmp al, 4
jne 0x4695da
cmp dword [esi + 0x44], 0
je 0x4696cf
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
mov ecx, dword [eax + 8]
cmp ecx, ebx
mov dword [esi + 8], ecx
jne 0x469430
mov edx, ebx
add ebx, 0x20
jb 0x46963f
lea eax, [edx + edx]
mov dword [esi + 0x14], edx
cmp eax, ebx
cmova ebx, eax
test edx, edx
je 0x4693df
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0x40], eax
mov eax, 1
mov dword [esi + 0x48], edx
jmp 0x4693e1
xor eax, eax
mov edx, ebx
mov dword [esi + 0x44], eax
lea eax, [esi + 0x40]
lea ecx, [esi + 0x2c]
not edx
shr edx, 0x1f
push eax
push ebx
call fcn.00462ae0
add esp, 8
cmp dword [esi + 0x2c], 0
mov eax, dword [esi + 0x30]
je 0x469416
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x14]
cmp eax, 0x80000001
je 0x469430
jmp 0x46963f
mov ecx, dword [ebp + 8]
mov dword [esi + 0xa0], 0xffffffff
mov dword [ecx + 4], eax
mov dword [ecx], ebx
mov ecx, dword [esi + 8]
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov dword [esi + 0x14], ebx
sub ebx, ecx
mov edx, dword [esi]
mov dword [esi + 0xa0], 0xffffffff
mov eax, dword [eax + 4]
add eax, ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x40], eax
cmp ebx, ecx
cmovae ebx, ecx
lea ecx, [esi + 0x2c]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], edi
lea ebx, [esi + 0x40]
jmp 0x4694a4
push ebx
call fcn.00468620
add esp, 4
movzx eax, byte [esi + 0x2c]
cmp al, 4
je 0x469540
movzx eax, al
mov eax, dword [eax*4 + 0x4697a4]
add eax, dword [esi + 0x8c]
jmp eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
mov edi, eax
sub edi, ecx
jb 0x4696e5
mov edx, dword [esi + 0x44]
cmp eax, edx
ja 0x4696f1
test ecx, ecx
je 0x469605
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x38]
add ebx, ecx
cmp byte [esi + 0x24], 0
mov dword [esi + 8], ebx
mov dword [edx], ebx
je 0x4695b0
mov ebx, dword [esi + 0x88]
mov edx, 0xffffffff
cmp eax, ebx
mov eax, dword [esi + 0x10]
cmovne eax, edx
mov edx, dword [esi + 0x20]
cmp ecx, ebx
jne 0x4695be
mov ecx, dword [esi + 8]
cmp ebx, eax
jb 0x4695a4
test eax, eax
lea eax, [eax + eax]
mov ebx, 0xffffffff
cmovs eax, ebx
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
jmp 0x46936a
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x14]
jmp 0x46936a
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x10], eax
jmp 0x46936a
movzx ecx, byte [esi + 0x43]
mov edx, dword [esi + 4]
movzx ebx, word [esi + 0x41]
mov edi, dword [esi + 0x44]
mov byte [edx + 3], cl
mov word [edx + 1], bx
mov byte [edx], al
mov dword [edx + 4], edi
jmp 0x469647
mov eax, dword [esi + 4]
mov dword [eax + 4], 0
mov byte [eax], 4
jmp 0x469647
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
sub ecx, dword [esi + 0x1c]
mov dword [eax + 4], ecx
mov byte [eax], 4
jmp 0x469647
mov dword [esi + 0x44], 0
lea ecx, [esi + 0x2c]
push eax
push edi
call fcn.00462ae0
add esp, 8
cmp dword [esi + 0x2c], 0
mov eax, dword [esi + 0x30]
je 0x46965b
mov edx, dword [esi + 0x20]
cmp eax, 0x80000001
mov ecx, ebx
je 0x469667
mov eax, dword [esi + 4]
mov word [eax], 0x2601
mov eax, dword [esi + 0x98]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 8]
mov edx, edi
mov dword [ecx + 4], eax
mov dword [ecx], edi
mov ecx, ebx
mov eax, dword [ebp + 8]
mov dword [esi], ecx
add ecx, 0x400
lea eax, [eax + 8]
mov dword [esi + 0x38], eax
jae 0x46968b
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi]
mov dword [esi + 0x24], 0
jmp 0x4692f9
mov edi, dword [esi + 0x1c]
mov eax, ecx
and eax, 0x1fff
je 0x4696be
mov ebx, ecx
mov ecx, 0x2000
mov dword [esi + 0x24], 0
sub ecx, eax
add ebx, ecx
mov dword [esi + 0x10], ebx
mov ebx, dword [esi]
setb al
test al, 1
jne 0x4692f9
jmp 0x469300
mov ebx, dword [esi]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x24], 0
jmp 0x469300
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 4]
mov eax, dword [eax]
sub eax, dword [esi + 0x1c]
mov dword [ecx + 4], eax
mov byte [ecx], 4
jmp 0x469647
mov edx, eax
push 0x4af5e8
call fcn.0048d5c0
mov ecx, eax
push 0x4af5e8
call fcn.0048d3b0
nop dword [eax]
push ebp
sub esp, 0x14
lea esi, [ebp - 0xa4]
mov ebp, dword [esi + 0x90]
mov eax, dword [esi]
cmp dword [eax + 4], 0
je 0x46973a
mov eax, dword [esi]
cmp dword [eax + 8], 9
jb 0x469729
mov eax, dword [esi + 0xc]
mov eax, dword [eax - 4]
mov dword [esi + 0xc], eax
push dword [esi + 0xc]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push dword [esi + 0x18]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
add esp, 0x14
pop ebp
ret