Function at 0x4216d0
Capabilities:
Get file size
Hash data with md5
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a06e0
mov eax, dword fs:[0]
push eax
sub esp, 0x100
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 eax, ecx
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], 0
xor eax, eax
mov dword [ebp - 4], 0
push eax
push 0x61b488
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], 0
mov word [ebp - 0x28], ax
call fcn.00404030
mov byte [ebp - 4], 1
mov byte [ebp - 0x67], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xf0], 0x67452301
mov dword [ebp - 0xec], 0xefcdab89
add dword [ebx], esp
inc ebp
mov dword [di - 0xec], 0xab89ffff
int 0xef
mov dword [ebp - 0xe8], 0x98badcfe
mov dword [ebp - 0xe4], 0x10325476
call fcn.00437b90
test al, al
je 0x4217a7
add byte [eax + eax*8 + 0x4cbf1b74], al
sbb bl, dh
sar byte [esi + 0x19f00b23], 1
mov edi, 0xd0de1a4c
mov esi, 0x19f00b23
push cs
mov ds, word [esi - 0x371aa87d]
mov dh, 0x6d
pop eax
mov edx, 0x857a1534
push edx
mov ch, al
movsb byte es:[edi], byte [esi]
add dword gs:[eax], eax
call fcn.00437d50
test al, al
je 0x4217c8
jle 0x421787
jb 0x421761
or al, 0x18
adc al, 0xc9
invalid
call fcn.00437c70
test al, al
je 0x4217e5
inc eax
lodsb al, byte [esi]
xor dword [eax + 0x45], 0xa46e73c1
mov ebp, 0x20321813
out dx, eax
imul edi
scasb al, byte es:[edi]
mov bl, 0xb5
cmp dword [ebp + 0x1c], 8
jb 0x4217f8
mov esi, dword [ebp + 8]
test esi, esi
je 0x421b63
jmp 0x4217fb
lea esi, [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x421b63
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x2c], 0
push eax
xorps xmm0, xmm0
push 0
push esi
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 0x421b63
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 dword [ebp - 0xf4], eax
cmp eax, 0xffffffff
jne 0x4218b3
mov esi, dword [ebp - 0xf8]
mov ecx, esi
push 0x61b488
call fcn.00403d10
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x42188c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004043b0
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 0x421bc5
inc ecx
push ecx
jmp 0x421bba
call fcn.00437ce0
test al, al
je 0x4218d5
pop eax
in eax, dx
test bl, 0x89
jo 0x4218bc
sbb eax, 0xedbf74ed
jmp 0x4218d3
push ss
inc ebp
call fcn.00438450
test al, al
je 0x4218f5
xor byte [ecx], ch
mov ah, byte [esi - 0x55e84d05]
push ebp
mov dl, 0xf7
xor al, byte [edi]
add byte [esi + eax + 0x3e], ch
retf 0x3c81
call fcn.00437ce0
test al, al
je 0x421915
int1
mov edx, 0x955b58da
inc edx
cmp al, 0xea
wait
clc
push ecx
add eax, 0x978e4c81
push ecx
push ebp
inc ecx
sbb byte [esi], dl
push 0
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xfc], eax
inc eax
push eax
mov dword [ebp - 0x104], eax
call fcn.00572fe7
add esp, 4
invalid
adc eax, 0x4c48300
mov dword [ebp - 0x100], eax
test eax, eax
jne 0x42196e
mov ecx, dword [ebp - 0xf8]
push 0x61b488
call fcn.00403d10
lea ecx, [ebp - 0x28]
call fcn.00403020
lea ecx, [ebp + 8]
call fcn.00403020
mov eax, dword [ebp - 0xf8]
jmp 0x421bc7
call fcn.00438290
test al, al
je 0x421997
jb 0x421934
movsb byte es:[edi], byte [esi]
loope 0x421943
pop eax
xor ah, ah
mov bh, 0x55
push esp
add ah, dh
jge 0x42191b
in eax, dx
sbb al, 0x63
sbb al, 0x2b
retf
call fcn.004380d0
test al, al
je 0x4219b7
push edi
pop ds
xchg ebx, eax
mov esi, 0x58b5603d
invalid
call fcn.00437ea0
test al, al
je 0x4219d7
sub ebx, ebp
and al, 0x77
pushal
salc
push 7
pop eax
stc
mov al, 0xa4
sub bl, byte [edi + 0x5d]
dec ebp
inc ecx
or dword [ebp + 0x58], esp
xor cl, byte [ecx - 0x4d]
push dword [ebp - 0x104]
mov esi, dword [ebp - 0x100]
push 0
push esi
call fcn.00578b50
add esp, 0xc
lea eax, [ebp - 0x10c]
push 0
push eax
push dword [ebp - 0xfc]
push esi
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00437dc0
test al, al
je 0x421a30
stosd dword es:[edi], eax
hlt
call fcn.00438300
test al, al
je 0x421a52
push esp
aas
xor al, 0xee
and dword [ebp - 0x563e4332], esp
sub byte [edi - 0x55], 0xc5
pushfd
add eax, 0xe4cef974
hlt
call fcn.00437ff0
test al, al
je 0x421a73
sal byte [ebp + 0x334cf4a7], 0x28
dec edi
ret 0x523b
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0xfc]
mov esi, dword [ebp - 0x100]
lea ecx, [ebp - 0xf0]
push esi
call fcn.00406610
push esi
call fcn.00572b1b
add esp, 4
call fcn.00437f80
test al, al
je 0x421ab9
pop edx
adc al, 0x39
lahf
ficom dword [0x25e6bbf1]
wait
xchg ecx, eax
push ds
fldcw word [ecx + 0x50c0458d]
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xf0]
call fcn.004070c0
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x64]
call fcn.00429690
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x421aef
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.00407ab0
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00437b90
test al, al
je 0x421b23
jmp 0xce1de2de
call fcn.004383e0
test al, al
je 0x421b45
shr dword [edx], 0xdd
push ds
mov eax, dword [0xac10938]
adc esi, dword [edx + edx*4]
push esi
retf 0x2b8d
cmp dword [ebp - 0x54], 0
jbe 0x421b5b
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404130
lea ecx, [ebp - 0x64]
call fcn.00403020
mov esi, dword [ebp - 0xf8]
xor eax, eax
mov ecx, esi
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
lea eax, [ebp - 0x28]
push eax
call fcn.00404250
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x421b9c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004043b0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], 0
cmp eax, 8
jb 0x421bc5
inc eax
push eax
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