Function at 0x471990
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
push dword [edi]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
push 1
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x10]
push 8
push eax
call fcn.00595b79
add esp, 0x10
cmp eax, 1
je 0x4719ec
pop edi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov edx, str.HP38BinE
lea ecx, [ebp - 0x10]
mov eax, dword [ecx]
push esi
mov esi, 3
cmp eax, dword [edx]
jne 0x471a09
add ecx, 4
add edx, 4
or esi, 0xffffffff
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x471a30
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x471a30
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x471a30
cmp esi, 0xffffffff
je 0x471a2c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x471a30
xor ecx, ecx
jmp 0x471a35
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x471a97
lea edx, [ebp - 0x10]
cmp dword [edx], 0x39335048
jne 0x471a52
cmp word [edx + 4], 0x6942
jne 0x471a52
cmp byte [edx + 6], 0x6e
je 0x471a90
lea edx, [ebp - 0x10]
cmp dword [edx], 0x50485048
jne 0x471a6b
cmp word [edx + 4], 0x3834
jne 0x471a6b
cmp byte [edx + 6], 0x2d
je 0x471a90
lea edx, [ebp - 0x10]
cmp dword [edx], 0x50485048
jne 0x471b87
cmp word [edx + 4], 0x3934
jne 0x471b87
cmp byte [edx + 6], 0x2d
jne 0x471b87
test ecx, ecx
je 0x471a97
lea ecx, [ebp - 0x10]
movsx eax, byte [ebp - 0xe]
lea ecx, [eax + eax*4]
movsx eax, byte [ebp - 0xd]
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x1c]
add eax, 0xfffffdf0
mov dword [ebx], eax
mov al, byte [ebp - 9]
mov byte [ecx], al
lea ecx, [ebp - 0x10]
cmp dword [ecx], 0x38335048
jne 0x471acd
cmp word [ecx + 4], 0x6942
jne 0x471acd
cmp byte [ecx + 6], 0x6e
je 0x471ae6
lea ecx, [ebp - 0x10]
cmp dword [ecx], 0x39335048
jne 0x471b0a
cmp word [ecx + 4], 0x6942
jne 0x471b0a
cmp byte [ecx + 6], 0x6e
jne 0x471b0a
push dword [edi]
call fcn.00597fff
add esp, 4
cmp eax, 2
jne 0x471b87
push dword [edi]
call fcn.00597fff
push dword [edi]
call fcn.00597fff
add esp, 8
push dword [edi]
call fcn.00597fff
push dword [edi]
mov esi, eax
call fcn.00597fff
push dword [edi]
shl eax, 8
or esi, eax
call fcn.00597fff
mov ebx, eax
add esp, 0xc
cmp ebx, 0xffffffff
je 0x471b87
and eax, 0xf
shl eax, 0x10
or eax, esi
cmp eax, 0x2b1e
jne 0x471b87
push dword [edi]
call fcn.00597fff
push dword [edi]
mov esi, eax
sar ebx, 4
shl esi, 4
or esi, ebx
call fcn.00597fff
mov ecx, dword [ebp - 0x20]
shl eax, 0xc
or eax, esi
mov dword [ecx], eax
push dword [edi]
call fcn.00597fff
push dword [edi]
mov esi, eax
call fcn.00597fff
push dword [edi]
shl eax, 8
or esi, eax
call fcn.00597fff
mov ebx, eax
add esp, 0x14
cmp ebx, 0xffffffff
jne 0x471b9d
pop esi
pop edi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
mov eax, ebx
and eax, 0xf
shl eax, 0x10
or eax, esi
mov dword [ecx], eax
push dword [edi]
call fcn.00597fff
push dword [edi]
mov esi, eax
sar ebx, 4
shl esi, 4
or esi, ebx
call fcn.00597fff
mov ecx, dword [ebp - 0x18]
shl eax, 0xc
or eax, esi
mov dword [ecx], eax
push dword [edi]
call fcn.00595867
mov ecx, dword [ebp - 4]
add esp, 0xc
neg eax
sbb eax, eax
xor ecx, ebp
pop esi
pop edi
and eax, 4
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret