Function at 0x401eb5
Capabilities:
Get file size

Disassembly:
enter 0x378, 1
push ebx
push esi
push edi
push 0x40a29f
push 0x402169
call fcn.00407f14
mov al, 0
mov dword [ebp - 0x37c], eax
push 0
push dword [ebp + 8]
call sub.kernel32.dll__lopen
mov edi, eax
cmp edi, 0xffffffff
jne 0x401ee9
jmp 0x40214b
push 0
push edi
call sub.kernel32.dll_GetFileSize
mov ebx, eax
test ebx, ebx
jne 0x401efc
jmp 0x40214b
push 0x40bb85
mov eax, dword [0x40b520]
push dword [eax + 0x40]
call fcn.00406f06
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x150]
push eax
lea eax, [ebp - 0x14c]
push eax
push dword [ebp + 8]
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.00407928
cmp dword [ebp + 0xc], 0
jne 0x401f69
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x250]
push eax
mov eax, dword [0x40b520]
push dword [eax + 0xc]
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.00407928
jmp 0x401f98
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x354]
push eax
mov eax, dword [0x40b520]
push dword [eax + 0x16c]
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.00407928
push 0x40bb85
mov eax, dword [ebp - 0x4a]
push eax
call fcn.00406f59
call fcn.00401df9
test al, al
jne 0x401fb4
jmp 0x40214b
lea eax, [ebp - 0x4a]
push eax
push 0
call fcn.00407928
push 0x2d
lea eax, [ebp - 0x32]
push eax
push edi
call sub.kernel32.dll__lread
mov ebx, eax
cmp dword [ebp + 0xc], 0
je 0x401fe7
and esi, 0
jmp 0x401fe3
mov al, byte [esi + ebp - 0x32]
xor al, 0x66
mov byte [esi + ebp - 0x32], al
inc esi
cmp ebx, esi
jge 0x401fd8
mov eax, dword [ebp - 0x3a]
add eax, ebx
mov dword [ebp - 0x3a], eax
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x360]
push eax
push dword [ebp - 0x4a]
call fcn.00407960
lea eax, [ebp - 0x35c]
push eax
mov eax, ebx
add eax, 0x20
push eax
call fcn.0040785c
pop eax
push dword [eax]
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
mov esi, 1
lea eax, [ebp - 0x36]
push eax
mov eax, esi
lea eax, [eax + eax*2]
lea eax, [eax + ebp - 0x35]
push eax
call fcn.00401e33
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x368]
push eax
push dword [ebp - 0x4a]
call fcn.00407960
lea eax, [ebp - 0x364]
push eax
mov al, byte [ebp - 0x36]
push eax
call fcn.0040785c
pop eax
push dword [eax]
call fcn.004079c4
lea eax, [ebp - 0x36c]
push eax
mov al, byte [ebp - 0x35]
push eax
call fcn.0040785c
pop eax
push dword [eax]
call fcn.004079c4
lea eax, [ebp - 0x370]
push eax
mov al, byte [ebp - 0x34]
push eax
call fcn.0040785c
pop eax
push dword [eax]
call fcn.004079c4
lea eax, [ebp - 0x374]
push eax
mov al, byte [ebp - 0x33]
push eax
call fcn.0040785c
pop eax
push dword [eax]
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
inc esi
cmp esi, 0xf
jle 0x402029
lea eax, [ebp - 0x4a]
push eax
lea eax, [ebp - 0x378]
push eax
push dword [ebp - 0x4a]
call fcn.00407960
push 0x40a295
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
mov eax, dword [ebp - 0x4a]
test eax, eax
je 0x4020f0
mov eax, dword [eax - 4]
cmp eax, 0x7d0
jge 0x4020fc
cmp ebx, 0x2d
je 0x402120
push 0x40bb85
mov eax, dword [ebp - 0x4a]
push eax
call fcn.00406f06
call fcn.00401df9
test al, al
jne 0x402115
jmp 0x40214b
lea eax, [ebp - 0x4a]
push eax
push 0
call fcn.00407928
cmp ebx, 0x2d
je 0x401fbf
push 0x40bb85
push 0x40a298
call fcn.00406f06
call fcn.00401df9
test al, al
jne 0x402143
jmp 0x40214b
mov al, 1
mov dword [ebp - 0x37c], eax
push edi
call sub.kernel32.dll__lclose
xor eax, eax
pop dword fs:[eax]
add esp, 8
push 0x402170
push 0x40a29f
call fcn.00407f68
ret