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

Disassembly:
sub esp, 0x1a4
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1b4]
xor ebx, ebx
push edi
push 0x4adf18
push esi
xor edi, edi
mov byte [esp + 0x2c], bl
mov byte [esp + 0x90], bl
call fcn.004579e3
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x426483
push ebp
lea eax, [esp + 0xf0]
push 0xc8
push eax
call fcn.00457906
add esp, 0xc
test eax, eax
je 0x4262b9
test edi, edi
jne 0x426208
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00425ff0
add esp, 8
test eax, eax
je 0x426294
push str.LanguageInfo
push dword [esp + 0x14]
call fcn.00432ed7
add esp, 8
test eax, eax
jne 0x426294
lea edi, [eax + 1]
jmp 0x426294
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.00426080
add esp, 0xc
test eax, eax
je 0x42627b
mov esi, dword [esp + 0x10]
push str.Language
push esi
call fcn.00432ed7
add esp, 8
test eax, eax
jne 0x426251
push 0x64
push dword [esp + 0x18]
lea eax, [esp + 0x2c]
push eax
call fcn.00419010
add esp, 0xc
jmp 0x426294
push str.Application
push esi
call fcn.00432ed7
add esp, 8
test eax, eax
jne 0x426294
push 0x64
push dword [esp + 0x18]
lea eax, [esp + 0x90]
push eax
call fcn.00419010
add esp, 0xc
jmp 0x426294
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0xf0]
push eax
call fcn.00425ff0
add esp, 8
test eax, eax
jne 0x4262b2
push ebp
lea eax, [esp + 0xf0]
push 0xc8
push eax
call fcn.00457906
add esp, 0xc
test eax, eax
jne 0x4261c6
mov esi, dword [esp + 0x1b8]
push ebp
call fcn.004577b1
add esp, 4
test edi, edi
je 0x426483
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x1c0]
call fcn.00432ed7
add esp, 8
test eax, eax
jne 0x426483
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x1c4]
call fcn.00432ed7
add esp, 8
test eax, eax
jne 0x426483
push eax
push eax
push 3
push eax
push 1
push closesocket
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esp + 0x14], eax
cmp eax, 0xffffffff
je 0x426483
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
je 0x426479
test edi, edi
jle 0x426479
lea eax, [edi + 1]
push eax
call fcn.0043831b
mov esi, eax
add esp, 4
test esi, esi
je 0x426479
push 0
lea eax, [esp + 0x1c]
push eax
push edi
push esi
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x426479
cmp dword [esp + 0x18], edi
jne 0x426479
mov byte [esi + edi], bl
mov edx, 1
mov al, byte [esi]
xor ebx, ebx
mov ecx, edx
mov edi, esi
test al, al
je 0x4263aa
cmp al, 0xd
jne 0x426397
inc edx
jmp 0x42639c
cmp al, 0xa
jne 0x42639c
inc ecx
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x426390
cmp ecx, edx
jge 0x4263aa
mov ecx, edx
lea eax, [ecx*8]
push eax
call fcn.0043831b
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x4263c7
xor ebx, ebx
jmp 0x426479
mov al, byte [esi]
test al, al
je 0x426474
mov edi, esi
mov dword [esp + 0x1c], edi
mov cl, al
cmp al, 0xd
je 0x4263eb
cmp al, 0xa
je 0x4263f7
mov al, byte [esi + 1]
inc esi
mov cl, al
test al, al
jne 0x4263d7
cmp cl, 0xd
jne 0x4263f7
cmp byte [esi + 1], 0xa
jne 0x4263f7
inc esi
lea eax, [esp + 0x10]
inc esi
push eax
push edi
call fcn.00425ff0
add esp, 8
test eax, eax
je 0x42643b
mov edi, dword [esp + 0x10]
push str.LanguageInfo
push edi
call fcn.00432ed7
add esp, 8
test eax, eax
je 0x426437
push edi
call fcn.00425f80
mov ebx, eax
add esp, 4
mov dword [ebx + 8], ebp
mov dword [ebx + 0x10], 0
jmp 0x42646a
mov edi, dword [esp + 0x1c]
test ebx, ebx
je 0x42646a
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.00426080
add esp, 0xc
test eax, eax
je 0x42646a
mov eax, dword [esp + 0x10]
mov dword [ebp], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 4], eax
inc dword [ebx + 0x10]
add ebp, 8
mov al, byte [esi]
test al, al
jne 0x4263d1
mov ebx, 1
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x1a4
ret