Function at 0x4230d3
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push 0xf4
mov eax, 0x5a3fa8
call fcn.00437119
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xfc], esi
push esi
xor eax, eax
mov dword [ebp - 4], esi
push 0x622454
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], esi
mov word [ebp - 0x28], ax
call fcn.00401ac0
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 1
call fcn.00442db2
call fcn.0042508a
test al, al
je 0x42313e
cmp al, 0x75
outsb dx, byte [esi]
invalid
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
cmovae eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4233c9
cmp dword [ebp + 0x20], 8
lea eax, [ebp + 0xc]
push esi
cmovae eax, dword [ebp + 0xc]
push 0x80
push 4
push esi
push 1
push closesocket
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 0xe8], ebx
cmp ebx, 0xffffffff
jne 0x423198
push 0x622454
mov ecx, edi
call fcn.004018d0
jmp 0x4233d4
call fcn.00424a57
test al, al
je 0x4231b9
xchg edx, eax
stosd dword es:[edi], eax
imul ecx, dword [eax - 0x5f], 0xffffff97
std
pop edx
fistp word [ecx + ebx + 0x31]
popfd
adc eax, 0xbd8b62e3
or al, 0xff
invalid
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xec], eax
inc eax
push eax
mov dword [ebp - 0xf8], eax
call fcn.00436a01
mov dword [ebp - 0xf0], eax
pop ecx
test eax, eax
je 0x423187
call fcn.00424eec
test al, al
je 0x423205
mov al, byte [0xd1f26db]
dec eax
hlt
call fcn.00425000
test al, al
je 0x42322c
hlt
push dword [ebp - 0xf8]
mov esi, dword [ebp - 0xf0]
push 0
push esi
call fcn.00446a10
add esp, 0xc
lea eax, [ebp - 0x100]
push 0
push eax
push dword [ebp - 0xec]
push esi
push dword [ebp - 0xe8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00424e62
test al, al
je 0x42327f
aas
invalid
call fcn.00424bf5
test al, al
je 0x4232a0
out 0xc8, al
scasd eax, dword es:[edi]
rcl byte es:[ecx + ecx + 0x74541c5d]
test eax, 0xe64f6194
ja 0x4232ba
push esp
or eax, 0xe87513bd
ficomp dword [ecx]
add byte [eax], al
call fcn.00424c7f
test al, al
je 0x4232c1
pop ebx
cmp byte [ebp + 0x2b], al
xor ch, bl
ljmp 0x36a4
mov edi, dword [esi + 0x695abf55]
test eax, 0xff18b5ff
invalid
push dword [ebp - 0xe8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xec]
mov ebx, dword [ebp - 0xf0]
lea ecx, [ebp - 0xe4]
push ebx
call fcn.00443780
push ebx
call fcn.004369fc
pop ecx
call fcn.00424e1d
test al, al
je 0x423307
xchg ah, cl
out dx, eax
int3
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0xe4]
call fcn.00442fcb
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
call int.004281cb
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.00401ce0
call fcn.00424dd8
test al, al
je 0x423353
sbb al, 0xff
invalid
cmp al, 0xf4
mov bl, 0x36
test byte [ebp + 0x3a], bl
mov byte [0x1648b52d], al
loope 0x423369
cli
jbe 0x4232e0
mov al, 0xd3
cmp al, ch
popfd
sbb byte [eax], al
add byte [eax + eax*8 + 0xe961e74], al
call fcn.00424bf5
test al, al
je 0x42337a
xchg esi, eax
push cs
test byte [ebp + 0x52], al
dec edi
std
dec ebx
xchg edx, eax
cmp eax, dword [esi + 0x700d5a40]
jo 0x42330d
pop edx
or eax, 0x909f7070
nop
invalid
call fcn.00424cc4
test al, al
je 0x4233a2
aas
les ebp, [ebx + 0x18cb5e66]
mov byte [ebp + 0x59], dh
hlt
xor esi, esi
cmp dword [ebp - 0x30], esi
jbe 0x4233b8
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.00401bc0
push esi
push 1
lea ecx, [ebp - 0x40]
call fcn.00401a00
mov edi, dword [ebp - 0xf4]
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call fcn.00408fe0
push esi
push 1
lea ecx, [ebp - 0x28]
call fcn.00401a00
push esi
push 1
lea ecx, [ebp + 0xc]
call fcn.00401a00
mov eax, edi
call fcn.004370d4
ret