Function at 0x47d5f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x577830]
xor eax, ebp
mov dword [ebp - 4], eax
movsx eax, word [ecx + 0x20]
push ebx
mov ebx, dword [ebp + 8]
cmp ebx, eax
push esi
push edi
jge 0x47d936
xor esi, esi
cmp ebx, esi
jl 0x47d936
imul ebx, ebx, 0x68
add ebx, dword [ecx + 0x90]
cmp dword [ecx + 0x4b0], esi
mov eax, dword [ebx + 0x64]
lea edi, [ecx + 0x49c]
mov dword [ebp - 8], edi
je 0x47d647
mov ecx, dword [edi + 0x1c]
cmp ecx, eax
ja 0x47d642
mov eax, ecx
mov dword [edi + 0x18], eax
jmp 0x47d655
mov ecx, dword [edi + 4]
push esi
push eax
push ecx
call fcn.005303b8
add esp, 0xc
mov edx, dword [ebx + 4]
cmp edx, dword [ebx + 0xc]
je 0x47d94e
mov eax, dword [ebx + 8]
cmp eax, dword [ebx]
je 0x47d94e
movzx eax, word [ebx + 0x10]
cmp ax, 4
jbe 0x47d685
mov ecx, dword [ebp + 0xc]
mov dword [ecx], esi
mov eax, 3
jmp 0x47d938
cmp ax, si
mov dword [ebp - 0x18], esi
jbe 0x47d8ec
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x18]
movsx eax, word [edx + eax*2]
cmp eax, 3
mov dword [ebp - 0xc], esi
ja case.default.0x47d6a3
jmp dword [eax*4 + 0x47d95c]
mov dword [ebp - 0xc], 3
jmp case.default.0x47d6a3
mov dword [ebp - 0xc], 2
jmp case.default.0x47d6a3
mov dword [ebp - 0xc], 1
jmp case.default.0x47d6a3
mov dword [ebp - 0xc], esi
cmp dword [edi + 0x14], esi
je 0x47d6df
lea eax, [ebx + 0x54]
push eax
mov eax, 2
call fcn.00469830
shr eax, 1
jmp 0x47d6fb
mov eax, dword [edi + 4]
cmp eax, esi
je 0x47d6f9
push eax
push 1
lea eax, [ebx + 0x54]
push 2
push eax
call fcn.0052edba
add esp, 0x10
jmp 0x47d6fb
xor eax, eax
cmp eax, 1
jne 0x47d953
mov cx, word [ebx + 0x54]
rol cx, 8
movzx eax, cx
cmp ax, 1
mov word [ebx + 0x54], cx
jne 0x47d85c
mov dword [ebp - 0x14], esi
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 4]
lea eax, [esi + esi]
call fcn.0051d230
mov eax, esp
test eax, eax
mov dword [ebp - 0x1c], eax
je 0x47d8e5
test esi, esi
mov dword [ebp - 0x10], 0
jbe 0x47d7bb
mov esi, eax
jmp 0x47d750
mov ecx, dword [ebp - 8]
cmp dword [ecx + 0x14], 0
je 0x47d76a
push esi
mov eax, 2
mov edi, ecx
call fcn.00469830
shr eax, 1
jmp 0x47d783
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x47d781
push ecx
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47d783
xor eax, eax
cmp eax, 1
jne 0x47d953
mov dx, word [esi]
rol dx, 8
movzx eax, dx
cmp ax, word [ebp - 0x14]
mov word [esi], dx
jbe 0x47d7a5
movzx eax, ax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebx + 0xc]
sub ecx, dword [ebx + 4]
add eax, 1
add esi, 2
cmp eax, ecx
mov dword [ebp - 0x10], eax
jb 0x47d750
movzx eax, word [ebp - 0x14]
call fcn.0051d230
mov esi, esp
test esi, esi
je 0x47d8e5
mov eax, dword [ebp - 8]
call fcn.00469880
mov edx, dword [ebp - 8]
cmp dword [edx + 0x14], 0
mov edi, eax
mov dword [ebp - 0x10], edi
je 0x47d7f6
push esi
mov eax, 2
mov edi, edx
call fcn.00469830
mov edi, dword [ebp - 0x10]
jmp 0x47d80b
mov eax, dword [edx + 4]
test eax, eax
je 0x47d80e
push eax
push 2
push 1
push esi
call fcn.0052edba
add esp, 0x10
mov edx, dword [ebp - 8]
mov al, byte [esi + 1]
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp + 0xc]
mov byte [ecx + esi], al
mov ecx, dword [ebx + 0xc]
xor eax, eax
sub ecx, dword [ebx + 4]
je 0x47d834
mov esi, dword [ebp - 0x1c]
movzx esi, word [esi + eax*2]
add eax, 1
add edi, esi
cmp eax, ecx
jb 0x47d824
cmp dword [edx + 0x14], 0
je 0x47d84b
mov eax, dword [edx + 0x1c]
cmp eax, edi
ja 0x47d843
mov edi, eax
mov dword [edx + 0x18], edi
jmp 0x47d8ca
mov edx, dword [edx + 4]
push 0
push edi
push edx
call fcn.005303b8
add esp, 0xc
jmp 0x47d8ca
cmp ax, si
jne 0x47d953
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
sub eax, dword [ebx]
imul esi, eax
mov eax, dword [ebp - 8]
add esi, 1
and esi, 0xfffffffe
call fcn.00469880
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 0xc]
mov edi, eax
add edi, esi
mov esi, dword [ebp - 8]
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x1c], edi
lea eax, [ecx + edx]
je 0x47d8ac
push eax
mov eax, 1
mov edi, esi
call fcn.00469830
mov edi, dword [ebp - 0x1c]
jmp 0x47d8c1
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x47d8c1
push ecx
push 1
push 1
push eax
call fcn.0052edba
add esp, 0x10
mov edx, edi
mov eax, esi
call fcn.004709e0
mov eax, dword [ebp - 0x18]
movzx ecx, word [ebx + 0x10]
add eax, 1
cmp eax, ecx
mov dword [ebp - 0x18], eax
jge 0x47d8ec
mov edi, dword [ebp - 8]
xor esi, esi
jmp 0x47d691
mov eax, 4
jmp 0x47d938
cmp byte [ebp + 0x10], 0
je 0x47d936
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov ecx, eax
shr ecx, 0x18
add ecx, 1
mov esi, eax
and esi, 0xffff00ff
mov edi, eax
imul esi, ecx
and edi, 0xff00
imul edi, ecx
xor esi, edi
mov edi, eax
and edi, 0xff00ff
imul edi, ecx
and esi, 0xff0000
xor esi, edi
shr esi, 8
and eax, 0xff000000
or esi, eax
mov dword [edx], esi
xor eax, eax
lea esp, [ebp - 0x28]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005120db
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0xc]
mov dword [edx], esi
mov eax, 3
jmp 0x47d938