Function at 0x4c5358
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffffc0
xor eax, eax
mov dword [ebp - 0x3c], eax
xor edx, edx
mov dword [0x76ed28], edx
xor ecx, ecx
mov dword [0x76ed2c], ecx
mov dword [0x76ed24], 0x800
xor eax, eax
mov dword [0x76ed18], eax
mov edx, dword [0x6e7380]
test edx, edx
je 0x4c5471
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jns 0x4c53a6
add ecx, 0x7ff
sar ecx, 0xb
mov dword [ebp - 0x40], ecx
push dword [0x6e7384]
push 1
mov eax, dword [ebp - 0x40]
add eax, 0x10
push eax
lea edx, [ebp - 0x1040]
push edx
call fcn.0046eed8
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x28], ecx
xor eax, eax
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
movsx ecx, byte [ebp + edx - 0x1040]
mov eax, dword [ebp - 0x18]
xor edx, edx
mov dl, byte [eax + 0x76ed30]
cmp ecx, edx
jne 0x4c53f9
inc dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
cmp ecx, 6
jl 0x4c53d4
mov eax, dword [ebp - 0x18]
cmp eax, 6
jne 0x4c5408
mov dword [ebp - 0x28], 1
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x4c5451
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 0x18]
movsx eax, byte [ebp + ecx - 0x1040]
mov edx, dword [ebp - 0x18]
xor ecx, ecx
mov cl, byte [edx + 0x76ed36]
cmp eax, ecx
jne 0x4c543b
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 6
jl 0x4c5416
mov edx, dword [ebp - 0x18]
cmp edx, 6
jne 0x4c5451
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x28], 1
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x4c546a
mov eax, dword [ebp + 0xc]
mov dword [0x76ed2c], eax
mov eax, 1
jmp 0x4c590b
xor eax, eax
jmp 0x4c590b
push 0x8006
call fcn.0066c210
pop ecx
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
test edx, edx
jne 0x4c54a7
push 0x59fa
call fcn.00402a64
pop ecx
push eax
push dword [0x75f650]
call fcn.0046279c
add esp, 8
xor eax, eax
jmp 0x4c590b
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x28], ecx
xor eax, eax
mov dword [ebp - 0x10], eax
push 0
push 0
push dword [ebp - 0x1c]
push dword [ebp + 8]
call sub.KERNEL32.DLL_SetFilePointer
cmp eax, 0xffffffff
jne 0x4c54db
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
push 0
lea edx, [ebp - 0x30]
push edx
push 0x8006
push dword [ebp - 8]
push dword [ebp + 8]
call sub.KERNEL32.DLL_ReadFile
mov ecx, dword [ebp - 0x30]
sub ecx, 6
inc ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
test eax, eax
jg 0x4c5512
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
xor edx, edx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
jge 0x4c55b9
xor edx, edx
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x18]
mov al, byte [edx + ecx]
mov edx, dword [ebp - 0x18]
mov cl, byte [edx + 0x76ed30]
cmp al, cl
jne 0x4c5551
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 6
jl 0x4c552a
mov edx, dword [ebp - 0x18]
cmp edx, 6
jne 0x4c5562
mov dword [ebp - 0x28], 1
jmp 0x4c55b9
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x18]
mov al, byte [edx + ecx]
mov edx, dword [ebp - 0x18]
mov cl, byte [edx + 0x76ed36]
cmp al, cl
jne 0x4c5590
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 6
jl 0x4c5569
mov edx, dword [ebp - 0x18]
cmp edx, 6
jne 0x4c55a8
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x28], 1
jmp 0x4c55b9
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
jl 0x4c5525
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x4c55cd
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
add ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x4c55e3
add dword [ebp - 0x1c], 0x8000
inc dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
cmp edx, 0x20
jl 0x4c54b7
mov ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x4c55fa
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
xor edx, edx
mov dword [ebp - 0x28], edx
push 0
push 0
mov ecx, dword [ebp - 0x20]
add ecx, 0x800
push ecx
push dword [ebp + 8]
call sub.KERNEL32.DLL_SetFilePointer
cmp eax, 0xffffffff
jne 0x4c562a
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
push 0
lea edx, [ebp - 0x30]
push edx
push 0x8000
push dword [ebp - 8]
push dword [ebp + 8]
call sub.KERNEL32.DLL_ReadFile
mov ecx, dword [ebp - 0x30]
sub ecx, 6
inc ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
test eax, eax
jg 0x4c5661
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
xor edx, edx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
jge 0x4c570a
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4c56ba
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x18]
mov al, byte [edx + ecx]
mov edx, dword [ebp - 0x18]
mov cl, byte [edx + 0x76ed30]
cmp al, cl
jne 0x4c56a9
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 6
jl 0x4c5682
mov edx, dword [ebp - 0x18]
cmp edx, 6
jne 0x4c56f9
mov dword [ebp - 0x28], 1
jmp 0x4c570a
mov dword [ebp - 0x18], 1
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
lea edx, [ecx + eax]
mov ecx, dword [ebp - 0x18]
mov al, byte [edx + ecx]
mov edx, dword [ebp - 0x18]
mov cl, byte [edx + 0x76ed3c]
cmp al, cl
jne 0x4c56e8
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 5
jl 0x4c56c1
mov edx, dword [ebp - 0x18]
cmp edx, 5
jne 0x4c56f9
mov dword [ebp - 0x28], 1
jmp 0x4c570a
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
cmp ecx, eax
jl 0x4c5674
mov edx, dword [ebp - 0x28]
test edx, edx
jne 0x4c5721
push dword [ebp - 8]
call fcn.0066c220
pop ecx
xor eax, eax
jmp 0x4c590b
mov edx, dword [ebp - 0x14]
add edx, 0x800
mov dword [0x76ed24], edx
xor ecx, ecx
mov dword [ebp - 0x28], ecx
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4c577e
mov dword [ebp - 0x18], 1
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
lea eax, [edx + ecx]
mov edx, dword [ebp - 0x18]
mov cl, byte [eax + edx]
mov eax, dword [ebp - 0x18]
mov dl, byte [eax + 0x757c9c]
cmp cl, dl
jne 0x4c576a
inc dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xc
jl 0x4c5743
mov eax, dword [ebp - 0x18]
cmp eax, 0xc
jne 0x4c577b
mov dword [ebp - 0x28], 1
jmp 0x4c5791
inc dword [ebp - 0x14]
mov edx, dword [0x76ed24]
add edx, 0xfffff800
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
jg 0x4c573c
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4c57d8
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], edx
mov ecx, dword [0x76ed24]
add ecx, 0xfffff800
mov eax, dword [ebp - 0x2c]
sub ecx, eax
mov dword [0x76ed28], ecx
mov edx, dword [0x76ed28]
cmp edx, 0x18
jne 0x4c57cc
mov dword [0x76ed18], 2
jmp 0x4c5839
mov dword [0x76ed18], 1
jmp 0x4c5839
mov ecx, dword [0x76ed24]
cmp ecx, 0x800
je 0x4c5839
mov eax, dword [0x76ed24]
add eax, 0xfffff800
mov dword [0x76ed28], eax
mov edx, dword [0x76ed28]
cmp edx, 0xc
jle 0x4c581e
mov ecx, dword [0x76ed24]
add ecx, 0xfffff6e8
mov dword [0x76ed28], ecx
mov dword [0x76ed18], 2
jmp 0x4c5828
mov dword [0x76ed18], 1
mov eax, dword [0x76ed28]
test eax, eax
jge 0x4c5839
xor edx, edx
mov dword [0x76ed28], edx
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x4c58e2
mov eax, dword [ebp + 0xc]
mov dword [0x76ed2c], eax
imul edx, dword [0x76ed24], 0xe0
add dword [ebp - 0x20], edx
xor ecx, ecx
mov dword [ebp - 0x10], ecx
push 0
push 0
push dword [ebp - 0x20]
push dword [ebp + 8]
call sub.KERNEL32.DLL_SetFilePointer
cmp eax, 0xffffffff
je 0x4c58bd
push 0
lea eax, [ebp - 0x30]
push eax
push dword [0x76ed24]
push dword [ebp - 8]
push dword [ebp + 8]
call sub.KERNEL32.DLL_ReadFile
mov edx, dword [ebp - 0x30]
mov ecx, dword [0x76ed24]
cmp edx, ecx
jne 0x4c58bd
push dword [ebp - 0x30]
push 2
push dword [ebp - 8]
call fcn.00467648
add esp, 0xc
test eax, eax
jne 0x4c58bd
mov eax, dword [0x76ed24]
add dword [ebp - 0x20], eax
inc dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
cmp edx, 0x20
jl 0x4c585e
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x20
jge 0x4c58fd
mov eax, dword [ebp - 0x20]
mov edx, dword [0x76ed28]
sub eax, edx
mov ecx, dword [0x76ed24]
shl ecx, 8
sub eax, ecx
mov dword [0x76ed2c], eax
jmp 0x4c58fd
mov eax, dword [ebp - 0x20]
mov edx, dword [0x76ed28]
sub eax, edx
mov ecx, dword [0x76ed24]
shl ecx, 4
sub eax, ecx
mov dword [0x76ed2c], eax
push dword [ebp - 8]
call fcn.0066c220
pop ecx
mov eax, 1
mov esp, ebp
pop ebp
ret