Function at 0x46b9d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x5008
call fcn.00471740
mov eax, dword [0x4c1c50]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4d68f4]
cmp byte [eax + 0x32f], 0
push esi
mov esi, dword [ebp + 8]
push edi
je 0x46bb9d
mov eax, dword [eax]
push eax
call fcn.0049260c
mov ecx, dword [0x4d68f4]
mov edx, dword [ecx]
push edx
mov esi, eax
call fcn.0049260c
mov ecx, dword [0x4d68f4]
mov dword [ebp - 0x5008], eax
mov edx, dword [ecx]
push edx
push eax
lea eax, [ebp - 0x5004]
push 1
push eax
call fcn.0047697e
add esp, 0x18
cmp eax, dword [ebp - 0x5008]
je 0x46ba54
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00470483
mov esp, ebp
pop ebp
ret
push ebx
lea ecx, [ebp - 0x5008]
push ecx
lea edx, [ebp - 0x2804]
push edx
lea eax, [ebp - 0x5004]
push eax
push esi
call fcn.00469730
mov ecx, dword [0x4d9400]
mov dx, word [ebp - 0x2804]
mov word [ecx + 0x1e631], dx
mov eax, dword [0x4d9400]
mov ecx, dword [ebp - 0x2802]
mov dword [eax + 0x1e633], ecx
mov eax, dword [0x4d9400]
xor ecx, ecx
xor edx, edx
add esp, 0x10
mov dword [ebp - 0x5008], ecx
mov ebx, 6
cmp dx, word [eax + 0x28]
jae 0x46bb1e
lea edx, [ebp - 0x27fe]
jmp 0x46bac0
mov eax, dword [eax + 0x1e637]
imul ecx, ecx, 0x202
mov si, word [edx]
mov word [ecx + eax], si
mov ecx, dword [ebp - 0x5008]
mov eax, dword [0x4d9400]
imul ecx, ecx, 0x202
mov eax, dword [eax + 0x1e637]
lea edi, [eax + ecx + 2]
lea esi, [edx + 2]
mov ecx, 0x80
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x5008]
mov eax, dword [0x4d9400]
inc ecx
mov dword [ebp - 0x5008], ecx
movzx esi, word [eax + 0x28]
add ebx, 0x202
add edx, 0x202
cmp ecx, esi
jb 0x46bac0
xor ecx, ecx
mov dword [ebp - 0x5008], ecx
movzx edx, word [eax + 0x2a]
movzx esi, word [eax + 0x28]
imul edx, esi
test edx, edx
je 0x46bb71
lea ebx, [ebp + ebx - 0x2804]
lea esp, [esp]
mov eax, dword [eax + 0x1e63b]
mov dx, word [ebx]
mov word [eax + ecx*2], dx
mov ecx, dword [ebp - 0x5008]
mov eax, dword [0x4d9400]
inc ecx
mov dword [ebp - 0x5008], ecx
movzx edx, word [eax + 0x2a]
movzx esi, word [eax + 0x28]
imul edx, esi
add ebx, 2
cmp ecx, edx
jb 0x46bb40
pop ebx
movzx edx, word [eax + 0x28]
movzx ecx, word [eax + 0x2a]
movzx eax, word [eax + 0x1e631]
imul ecx, edx
xor edx, edx
cmp eax, ecx
mov ecx, dword [ebp - 4]
setg dl
pop edi
xor ecx, ebp
pop esi
mov eax, edx
call fcn.00470483
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4d9400]
push esi
push 2
add eax, 0x1e631
push 1
push eax
call fcn.0047697e
add esp, 0x10
cmp eax, 2
jne 0x46ba3f
mov ecx, dword [0x4d9400]
push esi
push 4
add ecx, 0x1e633
push 1
push ecx
call fcn.0047697e
add esp, 0x10
cmp eax, 4
jne 0x46ba3f
mov eax, dword [0x4d9400]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x5008], ecx
cmp dx, word [eax + 0x28]
jae 0x46bc42
jmp 0x46bc00
imul ecx, ecx, 0x202
add ecx, dword [eax + 0x1e637]
push esi
push 0x202
push 1
push ecx
call fcn.0047697e
add esp, 0x10
cmp eax, 0x202
jne 0x46ba3f
mov ecx, dword [ebp - 0x5008]
mov eax, dword [0x4d9400]
inc ecx
mov dword [ebp - 0x5008], ecx
movzx edx, word [eax + 0x28]
cmp ecx, edx
jb 0x46bc00
xor ecx, ecx
mov dword [ebp - 0x5008], ecx
movzx edx, word [eax + 0x2a]
movzx edi, word [eax + 0x28]
imul edx, edi
test edx, edx
je 0x46bb72
lea ecx, [ecx]
mov eax, dword [eax + 0x1e63b]
push esi
push 2
lea ecx, [eax + ecx*2]
push 1
push ecx
call fcn.0047697e
add esp, 0x10
cmp eax, 2
jne 0x46ba3f
mov ecx, dword [ebp - 0x5008]
mov eax, dword [0x4d9400]
inc ecx
mov dword [ebp - 0x5008], ecx
movzx edx, word [eax + 0x2a]
movzx edi, word [eax + 0x28]
imul edx, edi
cmp ecx, edx
jb 0x46bc60
jmp 0x46bb72