Function at 0x414a60
Capabilities:
Get file size
Read file on windows
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x24
push ebx
mov ebx, dword [esp + 0x30]
push ebp
push esi
push edi
push 0x254
push 0
push ebx
mov dword [esp + 0x20], 0x254
call fcn.00401670
mov ebp, dword [esp + 0x44]
add esp, 0xc
mov ecx, ebp
xor esi, esi
xor edi, edi
call fcn.0040fbc0
mov edx, eax
test edx, edx
je 0x414f44
mov eax, dword [ebp]
nop
mov ecx, dword [eax]
test ecx, 0x400
je 0x414aab
inc esi
test ecx, 0x800
je 0x414ab4
inc edi
add eax, 0xc
sub edx, 1
jne 0x414aa0
test esi, esi
jne 0x414ac8
test edi, edi
je 0x414f44
mov ecx, dword [0x4467d4]
test ecx, ecx
je 0x414ad9
cmp byte [esp + 0x4c], 0
je 0x414ae1
test esi, esi
je 0x414ae1
mov al, 1
jmp 0x414ae3
xor al, al
mov byte [esp + 0x13], al
test ecx, ecx
je 0x414afa
test edi, edi
jne 0x414af3
test esi, esi
je 0x414afa
mov byte [esp + 0x12], 1
jmp 0x414aff
mov byte [esp + 0x12], 0
mov ebp, dword [esp + 0x48]
test al, al
je 0x414b47
call fcn.004158f0
mov esi, eax
test esi, esi
je 0x414f44
lea ecx, [ebx + 0x254]
mov edx, esi
call fcn.00415860
mov ecx, dword [esp + 0x44]
mov eax, ebp
add ecx, 0x254
mov dword [ebx + 0x10], ecx
adc eax, 0
add esi, 0x263
and esi, 0xfffffff0
mov dword [ebx + 0x14], eax
mov dword [esp + 0x14], esi
jmp 0x414b4c
mov esi, 0x254
mov dl, byte [esp + 0x12]
test dl, dl
je 0x414b8d
call fcn.00415900
mov edi, eax
test edi, edi
je 0x414f44
lea ecx, [esi + ebx]
mov edx, edi
call fcn.004158b0
mov dl, byte [esp + 0x12]
mov eax, esi
xor ecx, ecx
add eax, dword [esp + 0x44]
mov dword [ebx + 0x68], eax
adc ecx, ebp
add esi, 0xf
add esi, edi
mov dword [ebx + 0x6c], ecx
and esi, 0xfffffff0
mov dword [esp + 0x14], esi
cmp byte [esp + 0x13], 0
mov dh, byte [esp + 0x4c]
je 0x414c0e
mov dword [ebx + 0x34], 1
mov eax, 1
test dh, dh
je 0x414bb4
mov dword [ebx + 0x34], 3
mov eax, 3
cmp dword [0x446800], 0
je 0x414bc3
or eax, 4
mov dword [ebx + 0x34], eax
mov eax, dword [0x446830]
xor ecx, ecx
add eax, dword [0x446810]
adc ecx, dword [0x446814]
mov dword [ebx + 0x1c], ecx
xor ecx, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [0x446828]
add eax, dword [0x446810]
adc ecx, dword [0x446814]
mov dword [ebx + 0x24], ecx
xor ecx, ecx
mov dword [ebx + 0x20], eax
mov eax, dword [0x446840]
add eax, dword [0x446810]
adc ecx, dword [0x446814]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
test dl, dl
je 0x414c7b
mov dword [ebx + 0x8c], 1
test dh, dh
je 0x414c2a
mov dword [ebx + 0x8c], 3
mov eax, dword [0x446834]
xor ecx, ecx
add eax, dword [0x446818]
adc ecx, dword [0x44681c]
mov dword [ebx + 0x74], ecx
xor ecx, ecx
mov dword [ebx + 0x70], eax
mov eax, dword [0x44682c]
add eax, dword [0x446818]
adc ecx, dword [0x44681c]
mov dword [ebx + 0x7c], ecx
xor ecx, ecx
mov dword [ebx + 0x78], eax
mov eax, dword [0x446844]
add eax, dword [0x446818]
adc ecx, dword [0x44681c]
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], ecx
mov edi, dword [esp + 0x38]
mov ecx, edi
mov dword [esp + 0x24], 0
mov dword [ebx + 0xd0], esi
mov dword [esp + 0x18], 0
call fcn.0040fbc0
test eax, eax
je 0x414f38
xor ecx, ecx
mov dword [esp + 0x1c], ecx
lea ebx, [ebx]
mov edi, dword [edi]
add edi, ecx
mov ecx, dword [edi]
test ecx, ecx
je 0x414f16
mov edx, dword [edi + 4]
test edx, edx
je 0x414f16
mov eax, dword [edi + 8]
test eax, eax
je 0x414f16
mov ebp, dword [eax - 8]
test ebp, ebp
je 0x414f16
lea ebp, [ebp*2 + 0x37]
and ebp, 0xfffffff0
test cl, 2
je 0x414e77
push 0
push edx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0x4c], eax
cmp eax, 0x40
jb 0x414f16
push 0
push 0
push 0
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [esp + 0x24]
add esi, ebp
push eax
push dword [esp + 0x54]
add esi, ebx
push esi
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x414f12
mov edx, dword [esp + 0x4c]
cmp edx, dword [esp + 0x20]
jne 0x414f12
mov eax, dword [esi + 0x3c]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + esi + 0x50]
mov dword [ecx + ebx + 0x10], eax
mov ebx, 0x20b
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + esi + 0x28]
cmp word [eax + esi + 0x18], bx
jne 0x414d81
test ecx, ecx
jne 0x414d78
xor eax, eax
jmp 0x414d94
push ecx
push esi
call fcn.0040f370
jmp 0x414d90
test ecx, ecx
jne 0x414d89
xor eax, eax
jmp 0x414d94
push ecx
push esi
call fcn.0040f370
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov dword [ecx + ebx + 0x14], eax
mov eax, ebp
mov dword [ecx + ebx + 0x18], edx
xor ecx, ecx
mov edx, dword [esp + 0x14]
add eax, edx
adc ecx, ecx
add eax, dword [esp + 0x44]
adc ecx, dword [esp + 0x48]
mov dword [edx + ebx + 0x1c], eax
mov eax, edx
mov edx, dword [esp + 0x4c]
add edx, 0xf
add ebp, edx
and ebp, 0xfffffff0
mov dword [eax + ebx + 0x20], ecx
mov dword [esp + 0x30], ebp
call dword [sym.imp.KERNEL32.dll_GetTickCount]
shr eax, 4
movzx ebp, al
mov eax, dword [esi + 0x3c]
or ebp, 0x1000f000
push esi
mov ecx, dword [eax + esi + 0x50]
movzx eax, word [eax + esi + 0x18]
mov dword [esp + 0x30], ecx
mov ecx, 0x20b
mov dword [esp + 0x2c], eax
cmp ax, cx
jne 0x414e0a
call fcn.0040e3b0
jmp 0x414e0f
call fcn.0040e3b0
mov dword [esp + 0x4c], eax
mov eax, 0x20b
cmp word [esp + 0x28], ax
jne 0x414e37
or ebp, 0x20000000
push 1
mov eax, ebp
or eax, 0x10000
push eax
push esi
call fcn.0040eba0
jmp 0x414e4b
mov eax, ebp
shr eax, 0x1c
push eax
mov eax, ebp
or eax, 0x10000
push eax
push esi
call fcn.0040e410
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x20], ebp
mov ebp, dword [esp + 0x30]
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x32], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x36], eax
mov byte [esi], 0
mov esi, dword [esp + 0x14]
jmp 0x414e9f
mov dword [esi + ebx + 0x10], 0
mov dword [esi + ebx + 0x14], 0
mov dword [esi + ebx + 0x18], 0
mov dword [esi + ebx + 0x1c], 0
mov dword [esi + ebx + 0x20], 0
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x414eab
mov eax, dword [ecx - 8]
jmp 0x414ead
xor eax, eax
inc eax
push eax
lea eax, [ebx + 0x24]
push ecx
add eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp byte [0x430f39], 0
jne 0x414ecf
mov eax, 0x5c
mov word [esi + ebx + 0x26], ax
mov eax, dword [esp + 0x24]
mov dword [esi + ebx], eax
mov eax, dword [edi]
mov dword [esi + ebx + 8], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x414ee8
mov eax, dword [eax - 8]
jmp 0x414eea
xor eax, eax
mov ecx, dword [esp + 0x38]
mov dword [esi + ebx + 0xc], eax
call fcn.0040fbc0
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x24], ebp
cmp ecx, eax
sbb eax, eax
and eax, ebp
mov dword [esi + ebx + 4], eax
add esi, ebp
mov dword [esp + 0x14], esi
jmp 0x414f16
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov ecx, edi
inc dword [esp + 0x18]
add dword [esp + 0x1c], 0xc
call fcn.0040fbc0
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
jb 0x414cb0
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x24
ret 0x18
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x24
ret 0x18