Function at 0x416eb0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x9c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x28], esi
mov al, byte [esi + 0x11]
test al, al
je 0x416ecc
call fcn.00415a50
mov edi, dword [esp + 0xb0]
xor ebp, ebp
lea eax, [esp + 0x24]
push ebp
push eax
lea ecx, [esp + 0x34]
push 0x80
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x24]
cmp eax, 0x80
jae 0x416f02
push 1
push ebp
neg eax
push eax
jmp 0x4171a6
cmp byte [esp + 0x2c], 0xa
jne 0x4171a1
cmp byte [esp + 0x2d], 5
jne 0x4171a1
cmp byte [esp + 0x2e], 1
jne 0x4171a1
cmp byte [esp + 0x2f], 8
jne 0x4171a1
mov eax, dword [esp + 0x6d]
cmp al, 1
je 0x416f3e
cmp al, 3
jne 0x4171a1
mov ecx, dword [esp + 0x6e]
mov dl, al
shl dl, 3
and ecx, 0xffff
mov byte [esi + 0x10], dl
mov edx, dword [esp + 0x32]
mov dword [esi], ecx
mov ecx, dword [esp + 0x36]
and edx, 0xffff
and ecx, 0xffff
and eax, 0xff
sub ecx, edx
inc ecx
mov dword [esi + 4], ecx
mov dword [0x483854], edi
mov dword [0x483850], ebp
imul eax, dword [esi]
imul eax, dword [esi + 4]
mov ebx, eax
push ebx
mov dword [esp + 0x1c], ebx
call fcn.00429f70
add esp, 4
cmp eax, ebp
mov dword [esi + 8], eax
je 0x4171ad
mov cl, byte [esi + 0x11]
or cl, 1
mov byte [esi + 0x11], cl
mov ecx, dword [esp + 0x6d]
and ecx, 0xff
dec ecx
je 0x4170da
sub ecx, 2
je 0x416fd3
mov ecx, esi
call fcn.00415a50
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9c
ret 4
mov eax, dword [esi]
lea edx, [eax + eax*2]
push edx
call fcn.00429f70
mov ebp, dword [esi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
add esp, 4
test eax, eax
mov dword [esp + 0x10], 0
jbe 0x4170bb
mov ebx, dword [esi]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], edi
lea ebx, [ebx + ebx*2]
test ebx, ebx
mov dword [esp + 0x18], ebx
jbe 0x417079
call fcn.00416b10
cmp al, 0xc0
jb 0x417069
and al, 0x3f
mov byte [esp + 0x1c], al
mov esi, dword [esp + 0x1c]
and esi, 0xff
call fcn.00416b10
and eax, 0xff
mov ecx, esi
mov bl, al
mov edx, ecx
mov bh, bl
mov eax, ebx
shl eax, 0x10
mov ax, bx
mov ebx, dword [esp + 0x18]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x20]
add edi, esi
sub ebx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], ebx
jmp 0x417075
mov byte [edi], al
inc edi
dec ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], ebx
test ebx, ebx
ja 0x417010
mov edx, dword [esi]
mov ebx, dword [esp + 0x14]
xor eax, eax
lea ecx, [edx + ebx]
test edx, edx
lea edi, [edx + ecx]
jbe 0x4170a7
mov dl, byte [eax + ebx]
mov byte [ebp], dl
mov dl, byte [ecx]
inc ebp
mov byte [ebp], dl
mov dl, byte [edi]
inc ebp
mov byte [ebp], dl
mov edx, dword [esi]
inc ebp
inc eax
inc ecx
inc edi
cmp eax, edx
jb 0x41708b
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0x416ffb
mov eax, dword [esp + 0x14]
push eax
call fcn.00429ec0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret 4
mov edi, eax
cmp ebx, ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
jbe 0x417157
call fcn.00416b10
cmp al, 0xc0
jb 0x417141
and al, 0x3f
mov byte [esp + 0x1c], al
mov ebp, dword [esp + 0x1c]
and ebp, 0xff
call fcn.00416b10
and eax, 0xff
mov ecx, ebp
mov bl, al
mov edx, ecx
mov bh, bl
mov eax, ebx
shl eax, 0x10
mov ax, bx
mov ebx, dword [esp + 0x18]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add edi, ebp
add eax, ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jmp 0x417151
mov byte [edi], al
mov eax, dword [esp + 0x10]
inc edi
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jb 0x4170e8
call fcn.00416b10
cmp al, 0xc
jne 0x4171ad
push 0x300
call fcn.00429f70
add esp, 4
mov dword [esi + 0xc], eax
test eax, eax
je 0x4171ad
mov cl, byte [esi + 0x11]
mov edi, 0x300
or cl, 2
mov byte [esi + 0x11], cl
mov esi, eax
call fcn.00416b10
mov byte [esi], al
inc esi
dec edi
jne 0x417184
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x9c
ret 4
push 1
push ebp
push 0xffffffffffffff80
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x9c
ret 4