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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a0720
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x629a40]
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 dword [ebp - 0x50], ecx
mov dword [ebp - 4], 0
call fcn.00438530
test al, al
je 0x421c42
mov eax, 0x4a86ce17
pop ebx
adc al, 0x62
mov esi, 0xba1ad153
lcall 0x6df1, 0xc4b6ee80
call fcn.00437c00
test al, al
je 0x421c5c
out 0x77, al
pop eax
inc ebx
mov ecx, 0x87562fdb
xor byte [ecx], ah
and eax, dword [esi + 0x333f1fe3]
rol bh, 0x45
in al, dx
pop es
add byte [eax], al
add byte [eax + 0x68], dl
mov byte [ecx - 0x27b27300], dh
push esi
xchg dword [eax], esi
and dword [ebx], esp
xchg bl, ah
pop ds
aas
xor eax, eax
mov dword [ebp - 0x14], 7
push eax
push 0x61b488
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.00404030
mov byte [ebp - 4], 1
xor esi, esi
call fcn.004383e0
test al, al
je 0x421cad
outsd dx, dword [esi]
out 0x42, al
enter 0xffffffffffff901d, 0x14
push es
cmp dword gs:[edi - 0x4da8a3bf], 0xffffffcc
mov al, 0xd5
jg 0x421c53
or byte [edx + 0x677bab35], ch
pop es
invalid
cmp dword [ebp + 0x1c], 8
jb 0x421cc0
mov edi, dword [ebp + 8]
test edi, edi
je 0x421db9
jmp 0x421cc3
lea edi, [ebp + 8]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x421db9
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x2c], 0
push eax
xorps xmm0, xmm0
push 0
push edi
movups xmmword [ebp - 0x4c], xmm0
movups xmmword [ebp - 0x3c], xmm0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
setne al
test al, al
je 0x421db9
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 0
cmovae eax, dword [ebp + 8]
push 0x80
push 4
push 0
push 1
push bind
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x54], edi
cmp edi, 0xffffffff
je 0x421db7
call fcn.004379d0
test al, al
je 0x421d4c
cmp dh, ch
rcr dword [edx + 0x3f1a9d4a], 1
sbb ch, byte [ecx + ebx]
mov ah, 0xe0
sahf
sub dword [ebx], esp
mov edi, dword [ebp - 0x54]
call fcn.00438220
test al, al
je 0x421d6c
invalid
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [ebp - 0x50]
push eax
mov dword [ecx], eax
call fcn.00572fe7
mov esi, eax
add esp, 4
mov dword [ebp - 0x58], esi
test esi, esi
jne 0x421e15
call fcn.004383e0
test al, al
je 0x421db7
inc ecx
mov bh, 0xf
mov dl, 0xb
add esp, dword [ebp + 5]
ficomp dword [ebx - 0x46ec50dc]
mov bl, 0x55
das
mov ecx, 0x575f40f
wait
inc ebp
les eax, [eax]
jb 0x421d6c
dec esi
sal dword [ebx], cl
test byte [ebx - 0x77c13bb], 8
xor esi, esi
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x421dce
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004043b0
dec dword [ebx - 0x3fcce3b3]
mov ecx, dword [ebp + 0x1c]
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
cmp ecx, 8
jb 0x421df7
inc ecx
push ecx
push dword [ebp + 8]
lea ecx, [ebp + 8]
call fcn.004043b0
mov eax, esi
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.00572ac9
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x50]
push dword [eax]
push 0
push esi
call fcn.00578b50
add esp, 0xc
call fcn.004379d0
test al, al
je 0x421e44
insd dword es:[edi], dx
sahf
dec ebp
mov dword [ebx + 0x3461376], ebp
loope 0x421dcd
fst qword [edi - 0x6f]
xchg ebx, eax
ror dword [ebx + 0x7d8ba875], 0xac
call fcn.00438220
test al, al
je 0x421e64
jecxz 0x421e1d
push 0x27629881
jmp 0x421ed3
push 0
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x50]
push dword [eax]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.004384c0
test al, al
je 0x421e9e
retf
call fcn.00437f10
test al, al
je 0x421eb9
dec ebx
iretd
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x421db9