Function at 0x4a3930
Capabilities:
Read file on windows

Disassembly:
push ebp
push esi
push edi
mov esi, ecx
call fcn.004a3900
mov eax, dword [esp + 0x10]
push 0x56c6f4
push eax
call fcn.004fbcf9
add esp, 8
mov dword [esi + 4], eax
test eax, eax
je case.0x4a3b34.5
push 0
push 0
push eax
call fcn.004fc589
add esp, 0xc
test eax, eax
jne case.0x4a3b34.5
mov ecx, dword [esi + 4]
mov ebp, 1
push ecx
lea edi, [esi + 0x10]
push ebp
push 0xe
push edi
call fcn.004fc194
add esp, 0x10
test eax, eax
je case.0x4a3b34.5
mov di, word [edi]
cmp di, 0x4d42
je 0x4a39a1
cmp di, 0x4142
jne case.0x4a3b34.5
mov eax, dword [esi + 0x1a]
lea edi, [esi + 0x30]
add eax, 0xfffffff2
mov ecx, edi
push eax
mov dword [esi + 0x20], eax
call fcn.004a79d0
test eax, eax
je case.0x4a3b34.5
mov ecx, edi
call fcn.0045cdd0
mov edx, dword [esi + 4]
push 0
push 0xe
push edx
mov dword [esi + 0x2c], eax
call fcn.004fc589
add esp, 0xc
test eax, eax
jne case.0x4a3b34.5
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x2c]
push eax
push ebp
push ecx
push edx
call fcn.004fc194
add esp, 0x10
test eax, eax
je case.0x4a3b34.5
mov ecx, dword [esi + 0x2c]
cmp dword [ecx], 0xc
jne 0x4a3a09
mov dword [esi + 0x54], ebp
jmp 0x4a3a10
mov dword [esi + 0x54], 0
cmp dword [ecx + 4], ebp
jl case.0x4a3b34.5
mov eax, dword [ecx + 8]
test eax, eax
je case.0x4a3b34.5
mov edx, dword [esi + 0x54]
test edx, edx
jne 0x4a3a49
mov eax, dword [ecx + 0x10]
test eax, eax
mov dword [esi + 0x5c], eax
je 0x4a3a50
cmp eax, ebp
je 0x4a3a50
cmp eax, 2
je 0x4a3a50
cmp eax, 3
jne case.0x4a3b34.5
jmp 0x4a3a50
mov dword [esi + 0x5c], 0
test edx, edx
mov edi, 0x18
jne 0x4a3b08
mov eax, dword [ecx + 4]
mov dword [esi + 0x60], eax
mov eax, dword [ecx + 8]
cdq
xor eax, edx
sub eax, edx
xor edx, edx
mov dword [esi + 0x64], eax
mov eax, dword [ecx + 8]
test eax, eax
mov eax, dword [esi + 0x5c]
setge dl
dec eax
mov dword [esi + 0x58], edx
je 0x4a3af8
dec eax
je 0x4a3ae8
xor eax, eax
mov ax, word [ecx + 0xe]
mov dword [esi + 0x4c], eax
dec eax
cmp eax, 0x1f
ja case.0x4a3b34.5
xor ecx, ecx
mov cl, byte [eax + 0x4a3bb0]
jmp dword [ecx*4 + 0x4a3b94]
mov dword [esi + 0x50], 0x10
jmp 0x4a3b59
mov dword [esi + 0x50], 0x11
jmp 0x4a3b59
mov dword [esi + 0x50], 0x12
jmp 0x4a3b59
mov dword [esi + 0x50], 0x13
jmp 0x4a3b59
mov dword [esi + 0x50], 0x14
jmp 0x4a3b59
mov dword [esi + 0x50], 0x15
jmp 0x4a3b59
mov dword [esi + 0x4c], 4
mov dword [esi + 0x50], 0x16
jmp 0x4a3b59
mov dword [esi + 0x4c], 8
mov dword [esi + 0x50], 0x17
jmp 0x4a3b59
xor edx, edx
xor eax, eax
mov dx, word [ecx + 4]
mov dword [esi + 0x60], edx
mov ax, word [ecx + 6]
mov dword [esi + 0x64], eax
xor eax, eax
mov dword [esi + 0x58], ebp
mov ax, word [ecx + 0xa]
mov dword [esi + 0x4c], eax
dec eax
cmp eax, 0x17
ja case.0x4a3b34.5
xor ecx, ecx
mov cl, byte [eax + 0x4a3be4]
jmp dword [ecx*4 + 0x4a3bd0]
mov dword [esi + 0x50], edi
jmp 0x4a3b59
mov dword [esi + 0x50], 0x19
jmp 0x4a3b59
mov dword [esi + 0x50], 0x1a
jmp 0x4a3b59
mov dword [esi + 0x50], 0x1b
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push eax
lea ecx, [esi + 0x3c]
mov dword [esi], edx
call fcn.004a7310
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x14]
cmp eax, edi
mov dword [esi + 8], ebp
mov dword [esi + 0x68], ecx
jne case.0x4a3b34.5
pop edi
mov eax, ebp
pop esi
pop ebp
ret 0xc
mov ecx, esi
call fcn.004a3900
pop edi
pop esi
xor eax, eax
pop ebp
ret 0xc