Function at 0x47b800
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x24]
xor ebx, ebx
cmp esi, ebx
push edi
jne 0x47b820
lea eax, [ebx + 4]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp dword [ebp + 0x14], ebx
je 0x47b838
lea eax, [esp + 0x17]
push eax
mov eax, 1
mov edi, ebp
call fcn.00469830
jmp 0x47b855
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b853
push eax
push 1
lea ecx, [esp + 0x1f]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47b855
xor eax, eax
cmp eax, 1
jne 0x47b875
mov al, byte [esp + 0x17]
cmp al, 0x38
je 0x47b8a3
cmp dword [ebp + 0x14], ebx
je 0x47b882
mov eax, dword [ebp + 0x18]
cmp eax, 1
jb 0x47b875
add eax, 0xffffffff
mov dword [ebp + 0x18], eax
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ebp, dword [ebp + 4]
cmp ebp, ebx
je 0x47b875
movsx edx, al
push ebp
push edx
call fcn.0051b7b3
add esp, 8
mov eax, 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp dword [ebp + 0x14], ebx
je 0x47b8bb
lea eax, [esp + 0x17]
push eax
mov eax, 1
mov edi, ebp
call fcn.00469830
jmp 0x47b8d8
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b8d6
push eax
push 1
lea ecx, [esp + 0x1f]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47b8d8
xor eax, eax
cmp eax, 1
jne 0x47b875
mov al, byte [esp + 0x17]
cmp al, 0x42
jne 0x47b862
cmp dword [ebp + 0x14], ebx
je 0x47b901
lea eax, [esp + 0x17]
push eax
mov eax, 1
mov edi, ebp
call fcn.00469830
jmp 0x47b91e
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b91c
push eax
push 1
lea ecx, [esp + 0x1f]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47b91e
xor eax, eax
cmp eax, 1
jne 0x47b875
mov al, byte [esp + 0x17]
cmp al, 0x49
jne 0x47b862
cmp dword [ebp + 0x14], ebx
je 0x47b94b
lea eax, [esp + 0x17]
push eax
mov eax, 1
mov edi, ebp
call fcn.00469830
jmp 0x47b968
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b966
push eax
push 1
lea ecx, [esp + 0x1f]
push 1
push ecx
call fcn.0052edba
add esp, 0x10
jmp 0x47b968
xor eax, eax
cmp eax, 1
jne 0x47b875
mov al, byte [esp + 0x17]
cmp al, 0x4d
jne 0x47b862
cmp dword [ebp + 0x14], ebx
je 0x47b993
push esi
mov eax, 2
mov edi, ebp
call fcn.00469830
shr eax, 1
jmp 0x47b9ac
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b9aa
push eax
push 1
push 2
push esi
call fcn.0052edba
add esp, 0x10
jmp 0x47b9ac
xor eax, eax
cmp eax, 1
jne 0x47b875
mov ax, word [esi]
rol ax, 8
mov word [esi], ax
cmp dword [ebp + 0x14], ebx
je 0x47b9d7
lea ecx, [esp + 0x16]
push ecx
mov eax, 1
mov edi, ebp
call fcn.00469830
jmp 0x47b9f4
mov eax, dword [ebp + 4]
cmp eax, ebx
je 0x47b9f2
push eax
push 1
lea edx, [esp + 0x1e]
push 1
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47b9f4
xor eax, eax
cmp eax, 1
jne 0x47b875
movzx eax, byte [esp + 0x16]
cmp eax, ebx
mov dword [esp + 0x1c], ebx
je 0x47ba23
add eax, 1
cmp eax, ebx
jne 0x47ba17
mov dword [esp + 0x1c], ebx
jmp 0x47ba23
push ebx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00449c70
mov ebx, esi
add ebx, 4
lea esi, [esp + 0x1c]
mov eax, ebx
call fcn.004010e0
mov edi, esi
call fcn.00401070
mov cl, byte [esp + 0x16]
test cl, cl
je 0x47bab5
mov eax, ebx
call fcn.00449d40
mov eax, dword [ebx]
test eax, eax
je 0x47ba54
add eax, 4
jmp 0x47ba56
xor eax, eax
movzx ecx, byte [esp + 0x16]
mov byte [ecx + eax], 0
mov eax, ebx
call fcn.00449d40
mov ebx, dword [ebx]
test ebx, ebx
je 0x47ba71
lea esi, [ebx + 4]
jmp 0x47ba73
xor esi, esi
cmp dword [ebp + 0x14], 0
mov cl, byte [esp + 0x16]
movzx eax, cl
je 0x47ba8e
push esi
mov edi, ebp
call fcn.00469830
mov cl, byte [esp + 0x16]
jmp 0x47baaa
mov edx, dword [ebp + 4]
test edx, edx
je 0x47baa8
push edx
push eax
push 1
push esi
call fcn.0052edba
mov cl, byte [esp + 0x26]
add esp, 0x10
jmp 0x47baaa
xor eax, eax
movzx edx, cl
cmp eax, edx
jne 0x47b875
sub ecx, 1
test cl, 1
je 0x47baef
cmp dword [ebp + 0x14], 0
je 0x47bad7
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
add eax, 1
cmp ecx, eax
ja 0x47bad2
mov eax, ecx
mov dword [ebp + 0x18], eax
jmp 0x47baef
mov eax, dword [ebp + 4]
push 1
push 1
push eax
call fcn.005303b8
add esp, 0xc
test eax, eax
jne 0x47b87a
cmp dword [ebp + 0x14], 0
je 0x47bb0b
lea ecx, [esp + 0x18]
push ecx
mov eax, 4
mov edi, ebp
call fcn.00469830
shr eax, 2
jmp 0x47bb28
mov eax, dword [ebp + 4]
test eax, eax
je 0x47bb26
push eax
push 1
lea edx, [esp + 0x20]
push 4
push edx
call fcn.0052edba
add esp, 0x10
jmp 0x47bb28
xor eax, eax
cmp eax, 1
jne 0x47b875
mov ecx, dword [esp + 0x18]
rol ecx, 0x10
mov eax, ecx
shr eax, 8
mov edx, ecx
shl edx, 8
xor eax, edx
and eax, 0xff00ff
shl ecx, 8
xor eax, ecx
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x18], eax
je 0x47bc02
mov ebx, dword [esp + 0x28]
push 0
lea esi, [ebx + 8]
mov edi, eax
call fcn.00469960
test eax, eax
jne 0x47b87a
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47bbbc
cmp dword [ebp + 0x14], 0
mov ecx, dword [ebx + 0xc]
je 0x47bb96
push ecx
mov edi, ebp
call fcn.00469830
mov ecx, eax
mov eax, dword [esp + 0x18]
jmp 0x47bbb4
mov edx, dword [ebp + 4]
test edx, edx
je 0x47bbb2
push edx
push eax
push 1
push ecx
call fcn.0052edba
mov ecx, eax
mov eax, dword [esp + 0x28]
add esp, 0x10
jmp 0x47bbb4
xor ecx, ecx
cmp ecx, eax
jne 0x47b875
test al, 1
je 0x47bc44
cmp dword [ebp + 0x14], 0
je 0x47bbe6
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
add eax, 1
cmp ecx, eax
ja 0x47bc20
mov eax, ecx
mov dword [ebp + 0x18], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [ebp + 4]
push 1
push 1
push eax
call fcn.005303b8
add esp, 0xc
test eax, eax
je 0x47bc44
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
add eax, 1
and eax, 0xfffffffe
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x18], eax
je 0x47bc2d
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov eax, dword [ebp + 0x1c]
cmp eax, ecx
jbe 0x47bc20
mov eax, ecx
mov dword [ebp + 0x18], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ecx, dword [ebp + 4]
push 1
push eax
push ecx
call fcn.005303b8
add esp, 0xc
test eax, eax
jne 0x47b87a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret