Function at 0x402b70
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42cdb4
mov eax, dword fs:[0]
push eax
sub esp, 0x4b0
mov eax, dword [0x437610]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x468], eax
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.00403280
mov eax, dword [ebp + 0xc]
mov esi, 0x10
cmp dword [ebp + 0x20], esi
jae 0x402bc2
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x45c]
push eax
mov ecx, 0x40
call fcn.0040af90
test eax, eax
jne 0x402bf3
cmp dword [ebp + 0x20], esi
jb 0x402be9
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00416084
add esp, 4
mov eax, 0x3e8
jmp 0x40325d
mov edi, dword [ebp - 0x45c]
lea edx, [ebp - 0x47c]
push edx
push edi
mov dword [ebp - 0x46c], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
jne 0x402c20
mov dword [ebp - 0x454], ebx
mov dword [ebp - 0x450], ebx
jmp 0x402c32
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x450], eax
mov ecx, dword [ebp - 0x454]
inc ecx
push ecx
call fcn.004163dd
add esp, 4
push ebx
lea edx, [ebp - 0x45c]
push edx
push ebx
push edi
mov esi, eax
mov dword [ebp - 0x460], ebx
mov dword [ebp - 0x45c], ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp esi, ebx
je 0x402c8d
mov eax, dword [ebp - 0x454]
cmp eax, ebx
je 0x402c8d
push ebx
lea ecx, [ebp - 0x458]
push ecx
push eax
push esi
push edi
mov dword [ebp - 0x458], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x458]
jmp 0x402c8f
xor eax, eax
mov dword [ebp - 0x400], 0xf
mov dword [ebp - 0x404], ebx
mov byte [ebp - 0x414], bl
push eax
mov eax, esi
lea ecx, [ebp - 0x414]
mov byte [ebp - 4], 1
call fcn.004039a0
push esi
call fcn.004163a3
add esp, 4
push 0xa
push str._LYME_SFX_
lea edx, [ebp - 0x414]
push edx
xor eax, eax
call fcn.00403f90
cmp eax, 0xffffffff
jne 0x402d27
mov esi, 0x10
cmp dword [ebp - 0x400], esi
jb 0x402cf6
mov eax, dword [ebp - 0x414]
push eax
call fcn.00416084
add esp, 4
mov dword [ebp - 0x400], 0xf
mov dword [ebp - 0x404], ebx
mov byte [ebp - 0x414], bl
cmp dword [ebp + 0x20], esi
jb 0x402d1d
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00416084
add esp, 4
mov eax, 0x3e9
jmp 0x40325d
mov ebx, eax
lea esi, [ebp - 0x414]
call fcn.00403ac0
push 0xffffffffffffffff
xor esi, esi
push esi
push eax
lea ecx, [ebp - 0x430]
mov dword [ebp - 0x41c], 0xf
mov dword [ebp - 0x420], esi
mov byte [ebp - 0x430], 0
call fcn.00401260
push 0xa
push str._LYME_SFX_
lea edx, [ebp - 0x430]
push edx
xor eax, eax
mov byte [ebp - 4], 2
call fcn.00403f90
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x402df9
mov edi, 0x10
cmp dword [ebp - 0x41c], edi
jb 0x402d98
mov eax, dword [ebp - 0x430]
push eax
call fcn.00416084
add esp, 4
mov ebx, 0xf
mov dword [ebp - 0x41c], ebx
mov dword [ebp - 0x420], esi
mov byte [ebp - 0x430], 0
cmp dword [ebp - 0x400], edi
jb 0x402dc7
mov ecx, dword [ebp - 0x414]
push ecx
call fcn.00416084
add esp, 4
mov dword [ebp - 0x400], ebx
mov dword [ebp - 0x404], esi
mov byte [ebp - 0x414], 0
cmp dword [ebp + 0x20], edi
jb 0x402d1d
mov edx, dword [ebp + 0xc]
push edx
call fcn.00416084
add esp, 4
mov eax, 0x3e9
jmp 0x40325d
push esi
mov eax, ebx
cdq
lea ecx, [ebp - 0x450]
push ecx
push eax
push edi
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea edx, [ebp - 0x3f8]
test edx, edx
je 0x402e3c
push esi
lea eax, [ebp - 0x45c]
push eax
push 0xa
mov ecx, edx
push ecx
push edi
mov dword [ebp - 0x45c], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push 0xa
lea edx, [ebp - 0x3f8]
push str._LYME_SFX_
push edx
call fcn.004162e3
add esp, 0xc
test eax, eax
je 0x402e7e
lea ecx, [ebp - 0x430]
call fcn.00401190
lea ecx, [ebp - 0x414]
call fcn.00401190
lea ecx, [ebp + 0xc]
call fcn.00401190
mov eax, 0x3e9
jmp 0x40325d
push esi
lea eax, [ebx - 4]
cdq
lea ecx, [ebp - 0x450]
push ecx
push eax
push edi
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea edx, [ebp - 0x46c]
test edx, edx
je 0x402ec2
push esi
lea eax, [ebp - 0x45c]
push eax
push 4
mov ecx, edx
push ecx
push edi
mov dword [ebp - 0x45c], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [ebp - 0x46c]
mov eax, dword [ebp - 0x468]
mov dword [eax + 0xa60d8], edx
sub ebx, 8
push esi
mov eax, ebx
cdq
lea ecx, [ebp - 0x450]
push ecx
push eax
push edi
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x450], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp - 0x468]
lea eax, [ecx + 0xa60d0]
cmp eax, esi
je 0x402f24
push esi
lea edx, [ebp - 0x45c]
push edx
push 4
push eax
push edi
mov dword [ebp - 0x45c], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [ebp - 0x468]
mov eax, dword [ecx + 0xa60d0]
cmp eax, esi
jne 0x402f56
lea ecx, [ebp - 0x430]
call fcn.00401190
lea ecx, [ebp - 0x414]
call fcn.00401190
lea ecx, [ebp + 0xc]
call fcn.00401190
mov eax, 0x3ec
jmp 0x40325d
dec eax
mov dword [ebp - 0x45c], eax
cmp eax, esi
jl 0x4031e7
add eax, 3
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [ecx + edx*4]
mov dword [ebp - 0x458], eax
sub ebx, 4
push esi
mov eax, ebx
cdq
lea ecx, [ebp - 0x484]
push ecx
push eax
push edi
mov dword [ebp - 0x470], esi
mov dword [ebp - 0x478], esi
mov dword [ebp - 0x474], esi
mov dword [ebp - 0x464], esi
mov dword [ebp - 0x488], eax
mov dword [ebp - 0x484], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea edx, [ebp - 0x464]
test edx, edx
je 0x402fd6
push esi
lea eax, [ebp - 0x450]
push eax
push 4
mov ecx, edx
push ecx
push edi
mov dword [ebp - 0x450], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub ebx, dword [ebp - 0x464]
push esi
mov eax, ebx
cdq
mov dword [ebp - 0x48c], edx
lea edx, [ebp - 0x48c]
push edx
push eax
push edi
mov dword [ebp - 0x490], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x3f8]
test eax, eax
je 0x40302c
mov eax, dword [ebp - 0x464]
cmp eax, esi
je 0x40302c
push esi
lea ecx, [ebp - 0x450]
push ecx
push eax
lea edx, [ebp - 0x3f8]
push edx
push edi
mov dword [ebp - 0x450], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
lea eax, [ebx - 4]
cdq
lea ecx, [ebp - 0x494]
push ecx
push eax
push edi
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x494], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea edx, [ebp - 0x478]
test edx, edx
je 0x403070
push esi
lea eax, [ebp - 0x450]
push eax
push 4
mov ecx, edx
push ecx
push edi
mov dword [ebp - 0x450], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebx - 8]
cdq
push esi
mov dword [ebp - 0x49c], edx
lea edx, [ebp - 0x49c]
push edx
push eax
push edi
mov dword [ebp - 0x4a0], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp - 0x470]
test eax, eax
je 0x4030b4
push esi
lea ecx, [ebp - 0x450]
push ecx
push 4
mov edx, eax
push edx
push edi
mov dword [ebp - 0x450], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
sub ebx, 0xc
push esi
mov eax, ebx
cdq
lea ecx, [ebp - 0x47c]
push ecx
push eax
push edi
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea edx, [ebp - 0x474]
test edx, edx
je 0x4030fa
push esi
lea eax, [ebp - 0x450]
push eax
push 4
mov ecx, edx
push ecx
push edi
mov dword [ebp - 0x450], esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x458]
mov edx, dword [ebp - 0x470]
mov ecx, dword [ebp - 0x478]
mov dword [eax - 4], edx
mov dword [eax], ecx
lea eax, [ebp - 0x3f8]
mov dword [ebp - 0x438], 0xf
mov dword [ebp - 0x43c], esi
mov byte [ebp - 0x44c], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x403131
sub eax, edx
push eax
lea edx, [ebp - 0x3f8]
push edx
lea ecx, [ebp - 0x44c]
call fcn.00401360
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x464]
push eax
xor ecx, ecx
lea esi, [ebp - 0x4bc]
lea edx, [ebp - 0x44c]
call fcn.004011c0
push 0xffffffffffffffff
mov ecx, esi
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x458]
push 0
push ecx
lea ecx, [esi - 0x3c]
call fcn.00401260
cmp dword [ebp - 0x4a8], 0x10
jb 0x40319c
mov edx, dword [ebp - 0x4bc]
push edx
call fcn.00416084
add esp, 4
mov eax, dword [ebp - 0x474]
mov byte [ebp - 4], 2
cmp dword [ebp - 0x438], 0x10
mov dword [esi + 4], eax
jb 0x4031c1
mov ecx, dword [ebp - 0x44c]
push ecx
call fcn.00416084
add esp, 4
mov eax, dword [ebp - 0x45c]
sub esi, 0x44
dec eax
mov dword [ebp - 0x458], esi
xor esi, esi
mov dword [ebp - 0x45c], eax
test eax, eax
jns 0x402f78
mov ecx, dword [ebp - 0x468]
mov dword [ecx + 0xa60d4], ebx
mov ebx, 0x10
cmp dword [ebp - 0x41c], ebx
jb 0x403209
mov edx, dword [ebp - 0x430]
push edx
call fcn.00416084
add esp, 4
mov byte [ebp - 4], 0
mov dword [ebp - 0x41c], 0xf
mov dword [ebp - 0x420], esi
mov byte [ebp - 0x430], 0
cmp dword [ebp - 0x400], ebx
jb 0x40323b
mov eax, dword [ebp - 0x414]
push eax
call fcn.00416084
add esp, 4
cmp edi, 0xffffffff
je 0x403247
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0x20], ebx
jb 0x403258
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00416084
add esp, 4
mov eax, 0x3ea
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00415ac1
mov esp, ebp
pop ebp
ret 0x20