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

Disassembly:
mov eax, 0x32cf0
call fcn.0047e4b0
mov ecx, dword [esp + 0x32cf8]
push ebx
push ebp
push esi
lea eax, [esp + 0x27c]
push edi
xor esi, esi
push eax
push ecx
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, dword [esp + 0x32d04]
mov edi, eax
cmp edi, 0xffffffff
jne 0x42014c
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0x500]
mov dword [esp + 0x2c], esi
push edx
call fcn.0046eca0
add esp, 4
mov edi, 1
jmp 0x4205fe
mov eax, dword [esp + 0x29c]
push 1
push esi
push esi
push eax
call fcn.0047e500
mov ecx, dword [esp + 0x2a0]
mov esi, eax
mov ebp, edx
xor edx, edx
add esi, ecx
mov ecx, 0xa
adc ebp, edx
mov eax, esi
add eax, 0x3ff
mov edx, ebp
adc edx, 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebp
call fcn.0047e4e0
push edi
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edi, dword [esp + 0x32d0c]
lea eax, [esp + 0x3c0]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x4201f3
or ecx, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x80]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x500]
push ecx
call fcn.0046eca0
add esp, 4
mov edi, 2
jmp 0x4205fe
mov edx, dword [esp + 0x3dc]
push 1
push 0
push 0
push edx
call fcn.0047e500
mov ecx, dword [esp + 0x3e0]
mov dword [esp + 0x28], edx
xor edx, edx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
push ecx
adc eax, edx
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp esi, dword [esp + 0x14]
jne 0x42023a
cmp ebp, dword [esp + 0x18]
je 0x42029b
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x80]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0xbd
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x500]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 3
jmp 0x4205fe
mov ecx, dword [esp + 0x32d08]
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x24], eax
jne 0x420308
mov edi, dword [esp + 0x32d08]
or ecx, eax
xor eax, eax
lea edx, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x500]
push ecx
call fcn.0046eca0
add esp, 4
mov edi, 1
jmp 0x4205fe
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
jne 0x420372
or ecx, eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x80]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x500]
push ecx
call fcn.0046eca0
mov edx, dword [esp + 0x28]
add esp, 4
mov edi, 2
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4205fe
xor eax, eax
cmp ebp, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
jb 0x42054d
ja 0x420394
cmp esi, eax
jbe 0x42054d
jmp 0x420394
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edi, 0x19000
sub esi, ecx
cmp esi, 0x19000
ja 0x4203a9
mov edi, esi
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x20]
push 0
push edx
lea eax, [esp + 0xd08]
push edi
push eax
push ecx
call esi
test eax, eax
je 0x42087d
cmp dword [esp + 0x20], edi
jne 0x42087d
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x20]
push 0
push edx
lea eax, [esp + 0x19d08]
push edi
push eax
push ecx
call esi
test eax, eax
je 0x420818
cmp dword [esp + 0x20], edi
jne 0x420818
xor ebp, ebp
test edi, edi
jbe 0x420422
mov dl, byte [esp + ebp + 0xd00]
mov al, byte [esp + ebp + 0x19d00]
cmp dl, al
jne 0x420746
inc ebp
cmp ebp, edi
jb 0x420407
mov esi, dword [ebx + 0x998]
lea eax, [edi + 0x3ff]
shl eax, 0xa
mov ecx, dword [ebx + 0x1a0]
push 0
shr eax, 0x14
add esi, eax
mov eax, esi
mov dword [ebx + 0x998], esi
push eax
push 0x402
push 0x407
push ecx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [ebx + 0x998]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [ebx + 0x99c]
mov esi, eax
mov eax, dword [ebx + 0x16c]
cmp esi, eax
je 0x4204df
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [ebx + 0xac]
push edx
push esi
lea eax, [esp + 0x188]
push str._2d____s
push eax
mov dword [ebx + 0x16c], esi
call ebp
mov edx, dword [ebx + 0x18]
add esp, 0x10
lea ecx, [esp + 0x180]
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
lea eax, [esp + 0x184]
push str._2d__
push eax
call ebp
mov edx, dword [ebx + 0x1a0]
add esp, 0xc
lea ecx, [esp + 0x180]
push ecx
push 0x474
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [esp + 0x1c]
xor edx, edx
mov ecx, 0x64
div ecx
test edx, edx
je 0x4204f4
push 0
jmp 0x4204f6
push 1
call fcn.00445c60
mov eax, dword [ebx + 0x6cc]
add esp, 4
test eax, eax
jne 0x4207f4
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
add ebp, edi
adc eax, 0
inc edx
cmp eax, ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jb 0x420390
ja 0x420546
mov edx, dword [esp + 0x30]
mov eax, ebp
cmp eax, edx
jb 0x420390
mov edi, dword [esp + 0x32d0c]
mov eax, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call esi
mov ecx, dword [esp + 0x10]
push ecx
call esi
mov eax, dword [esp + 0x32d10]
test eax, eax
je 0x4208fb
mov edx, dword [esp + 0x298]
mov eax, dword [esp + 0x3d8]
cmp edx, eax
jne 0x4205a2
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x3d4]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x989680
jle 0x4208fb
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x80]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0xbf
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x500]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 5
mov ecx, dword [ebx + 0x9a0]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebx + 0x19c]
push eax
push 0
mov ebp, 1
lea edx, [esp + 0x88]
push 0x1007
push ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], edx
call esi
mov edx, dword [ebx + 0x9a0]
lea ecx, [esp + 0x38]
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 0x19c]
push ecx
push 0
lea eax, [esp + 0x508]
push 0x1006
push edx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x5c], eax
call esi
mov eax, dword [ebx + 0x9a0]
mov ebp, dword [esp + 0x1c]
mov esi, dword [ebx + 0x998]
inc eax
mov dword [ebx + 0x9a0], eax
mov eax, dword [esp + 0x2c]
sub eax, ebp
push 0
add esi, eax
mov eax, esi
mov dword [ebx + 0x998], esi
push eax
mov eax, dword [ebx + 0x1a0]
push 0x402
push 0x407
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
mov eax, dword [ebx + 0x998]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [ebx + 0x99c]
mov esi, eax
mov eax, dword [ebx + 0x16c]
cmp esi, eax
je 0x420739
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
lea ecx, [ebx + 0xac]
push ecx
push esi
lea edx, [esp + 0x188]
push str._2d____s
push edx
mov dword [ebx + 0x16c], esi
call ebp
mov ecx, dword [ebx + 0x18]
add esp, 0x10
lea eax, [esp + 0x180]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push esi
lea edx, [esp + 0x184]
push str._2d__
push edx
call ebp
mov ecx, dword [ebx + 0x1a0]
add esp, 0xc
lea eax, [esp + 0x180]
push eax
push 0x474
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x32cf0
ret
mov edi, dword [esp + 0x32d0c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x70]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
xor ecx, ecx
mov cl, byte [esp + ebp + 0xd00]
push ecx
push str.0x_02X
push edx
call esi
xor eax, eax
lea ecx, [esp + 0x6c]
mov al, byte [esp + ebp + 0x19d0c]
push eax
push str.0x_02X
push ecx
call esi
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x88]
lea eax, [esp + 0x78]
push edx
add ecx, ebp
push eax
push ecx
push 0xbe
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 0x28
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x500]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 4
jmp 0x4208e0
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov edx, dword [esp + 0x10]
push edx
call esi
pop edi
pop esi
pop ebp
mov eax, 0xa
pop ebx
add esp, 0x32cf0
ret
mov edi, dword [esp + 0x32d0c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xc0
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x500]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 2
jmp 0x4208e0
mov edi, dword [esp + 0x32d08]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0xc0
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0046b4e0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x500]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 1
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4205fe
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x32cf0
ret