Function at 0x75b69797
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x4c
cmp byte [ebp + 0x18], 0
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
push esi
je 0x75b697c2
push dword [ebp + 0x1c]
push eax
call fcn.75b667b0
pop ecx
pop ecx
test al, al
jne 0x75b697d2
xor eax, eax
jmp 0x75b69848
xor ecx, ecx
push ecx
push ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test eax, eax
jne 0x75b697bb
mov eax, dword [ebx]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea ecx, [ebp + 0x18]
push ecx
push 0xc
lea ecx, [ebp - 0x4c]
push ecx
push eax
call edi
test eax, eax
je 0x75b69845
cmp dword [ebp + 0x18], 0xc
jne 0x75b69845
mov eax, dword [ebp - 0x48]
movzx cx, al
shl cx, 8
shr eax, 8
movzx esi, cx
movzx eax, al
or esi, eax
mov dword [ebp - 4], 0
jbe 0x75b69845
cmp dword [ebp - 4], 0x28
jae 0x75b69845
mov eax, dword [ebx]
push 0
lea ecx, [ebp + 0x18]
push ecx
push 0x10
lea ecx, [ebp - 0x30]
push ecx
push eax
call edi
test eax, eax
je 0x75b69845
cmp dword [ebp + 0x18], 0x10
jne 0x75b69845
cmp dword [ebp - 0x30], 0x656d616e
je 0x75b6984c
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jb 0x75b69813
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp - 0x28]
mov esi, eax
mov ecx, eax
shr ecx, 0x10
and esi, 0xff0000
or esi, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
mov eax, dword [ebx]
push 0
shl ecx, 8
shr esi, 8
push 0
or esi, ecx
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, esi
jne 0x75b69845
mov eax, dword [ebx]
push 0
lea ecx, [ebp + 0x18]
push ecx
push 6
lea ecx, [ebp - 0x10]
push ecx
push eax
call edi
test eax, eax
je 0x75b69845
cmp dword [ebp + 0x18], 6
jne 0x75b69845
mov eax, dword [ebp - 0xe]
movzx cx, al
shl cx, 8
shr eax, 8
movzx esi, cx
movzx eax, al
or esi, eax
je 0x75b69845
mov eax, dword [ebx]
push 0
lea ecx, [ebp + 0x18]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
dec esi
push eax
mov dword [ebp - 4], esi
call edi
test eax, eax
je 0x75b69845
cmp dword [ebp + 0x18], 0xc
jne 0x75b69845
mov eax, dword [ebp - 0x20]
movzx cx, byte [ebp - 0x20]
shr eax, 8
movzx ax, al
shl cx, 8
or ax, cx
mov ecx, dword [ebp - 0x1a]
cmp ax, word [ebp + 0xc]
jne 0x75b69985
mov edx, dword [ebp - 0x1c]
movzx si, byte [ebp - 0x1c]
shr edx, 8
movzx dx, dl
shl si, 8
or dx, si
cmp dx, word [ebp + 0x10]
jne 0x75b69937
mov edx, ecx
shr edx, 8
movzx si, cl
movzx dx, dl
shl si, 8
or dx, si
cmp dx, word [ebp + 0x14]
je 0x75b69992
mov esi, dword [ebp - 4]
cmp ax, word [ebp + 0xc]
jne 0x75b69985
mov eax, ecx
shr eax, 8
movzx cx, cl
movzx ax, al
shl cx, 8
or ax, cx
cmp ax, word [ebp + 0x14]
jne 0x75b69985
mov eax, 0x800
cmp ax, word [ebp + 0x10]
jne 0x75b69985
mov eax, dword [0x75bc8050]
cmp eax, 6
jg 0x75b69992
jne 0x75b69985
mov eax, dword [0x75bc8030]
test eax, eax
jg 0x75b69992
jne 0x75b69985
cmp dword [0x75bcca80], 0
jge 0x75b69992
test esi, esi
je 0x75b69845
jmp 0x75b698b7
mov eax, dword [ebp - 0x28]
mov esi, eax
mov ecx, eax
shr ecx, 0x10
and esi, 0xff0000
or esi, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
mov eax, dword [ebp - 0xc]
shl ecx, 8
shr esi, 8
or esi, ecx
movzx cx, al
shl cx, 8
shr eax, 8
movzx eax, al
movzx ecx, cx
or ecx, eax
mov eax, dword [ebp - 0x16]
add esi, ecx
movzx cx, al
shr eax, 8
shl cx, 8
movzx eax, al
movzx ecx, cx
or ecx, eax
mov eax, dword [ebp - 0x18]
add esi, ecx
movzx cx, al
shr eax, 8
shl cx, 8
movzx eax, al
movzx edi, cx
mov ecx, dword [ebp + 0x20]
or edi, eax
mov eax, edi
shr eax, 1
mov dword [ebp - 8], eax
push 0
inc eax
push eax
call fcn.759b593b
test al, al
je 0x75b69845
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
push 0
push 0
mov dword [ebp - 4], eax
mov eax, dword [ebx]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, esi
jne 0x75b69845
mov esi, dword [ebp - 4]
mov ebx, dword [ebx]
push 0
lea eax, [ebp + 0x18]
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x75b69845
cmp edi, dword [ebp + 0x18]
jne 0x75b69845
mov ecx, dword [ebp - 8]
xor eax, eax
test ecx, ecx
jbe 0x75b69a80
movzx dx, byte [esi + eax*2]
movzx bx, byte [esi + eax*2 + 1]
shl dx, 8
or dx, bx
mov word [esi + eax*2], dx
inc eax
cmp eax, ecx
jb 0x75b69a65
xor eax, eax
mov word [esi + ecx*2], ax
lea eax, [edi + 1]
jmp 0x75b69847