Function at 0x47ce40
Capabilities:
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x44
mov eax, dword [0x4d1698]
xor eax, esp
mov dword [esp + 0x3c], eax
push ebx
mov ebx, dword [esp + 0x50]
push ebp
push esi
push edi
push 0
mov edi, edx
call fcn.0047cab0
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
cmp esi, 0xffffffff
jne 0x47ce82
or eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0048c97b
add esp, 0x44
ret
push 0x4aeee4
push edi
call fcn.0048d0d9
mov edi, eax
add esp, 8
test edi, edi
jne 0x47ceb7
push esi
call fcn.0048d7f0
add esp, 4
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0048c97b
add esp, 0x44
ret
push 0x4b9888
push ebx
call fcn.0048d0d9
mov ebp, eax
add esp, 8
mov dword [esp + 0x24], ebp
test ebp, ebp
je 0x47d27c
mov eax, dword [esp + 0x58]
test eax, eax
je 0x47ceef
lea ecx, [esi + 0x234]
mov dword [esp + 0x1c], fcn.0047e440
mov dword [esp + 0x20], ecx
jmp 0x47cefe
lea edx, [esi + 4]
mov dword [esp + 0x1c], 0x47e6d0
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], 0
test eax, eax
je 0x47d00a
push ebp
push 4
push 1
push str.SWCR
call fcn.0048f994
add esp, 0x10
cmp eax, 4
jne 0x47cff0
push 2
push 0
push edi
call fcn.0048d5da
add esp, 0xc
test eax, eax
jne 0x47cff0
push edi
call fcn.0048d4eb
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x31], eax
mov dword [esp + 0x35], eax
mov dword [esp + 0x39], eax
mov word [esp + 0x3d], ax
mov byte [esp + 0x3f], al
lea eax, [esp + 0x30]
push eax
push 0x80
mov ecx, eax
push ecx
push edx
lea ebx, [esi + 0x478]
push ebx
mov byte [esp + 0x44], 0
call dword [esp + 0x34]
push 0
push 0
push edi
call fcn.0048d5da
add esp, 0x24
test eax, eax
jne 0x47cff0
push ebp
push 4
lea eax, [esp + 0x20]
push 1
push eax
call fcn.0048f994
add esp, 0x10
cmp eax, 4
jne 0x47cff0
push ebp
push eax
lea ecx, [esp + 0x20]
push 1
push ecx
call fcn.0048f994
add esp, 0x10
cmp eax, 4
jne 0x47cff0
push ebp
push eax
lea edx, [esp + 0x20]
push 1
push edx
call fcn.0048f994
add esp, 0x10
cmp eax, 4
jne 0x47cff0
push ebp
push 0x10
lea eax, [esp + 0x34]
push 1
push eax
call fcn.0048f994
add esp, 0x10
cmp eax, 0x10
je 0x47d109
push edi
call fcn.0048d6c3
push ebp
call fcn.0048d6c3
push esi
call fcn.0048d7f0
add esp, 0xc
jmp 0x47d28b
push edi
xor eax, eax
push 4
lea ecx, [esp + 0x1c]
push 1
push ecx
mov byte [esp + 0x3c], 0
mov dword [esp + 0x3d], eax
mov dword [esp + 0x41], eax
mov dword [esp + 0x45], eax
mov word [esp + 0x49], ax
mov byte [esp + 0x4b], al
call fcn.0048d33a
add esp, 0x10
cmp eax, 4
jne 0x47d24f
push eax
lea edx, [esp + 0x18]
push str.SWCR
push edx
call fcn.0048d9f8
add esp, 0xc
test eax, eax
jne 0x47d24f
push edi
push 4
lea eax, [esp + 0x20]
push 1
push eax
call fcn.0048d33a
add esp, 0x10
cmp eax, 4
jne 0x47d24f
push edi
push eax
lea ecx, [esp + 0x1c]
push 1
push ecx
call fcn.0048d33a
add esp, 0x10
cmp eax, 4
jne 0x47d24f
push edi
push eax
lea edx, [esp + 0x1c]
push 1
push edx
call fcn.0048d33a
add esp, 0x10
cmp eax, 4
jne 0x47d24f
push edi
push 0x10
lea eax, [esp + 0x44]
push 1
push eax
call fcn.0048d33a
add esp, 0x10
cmp eax, 0x10
jne 0x47d24f
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ecx
push 0x80
mov edx, ecx
push edx
push eax
lea ebx, [esi + 0x478]
push ebx
call dword [esp + 0x30]
add esp, 0x14
mov eax, 0x10
xor ecx, ecx
lea ecx, [ecx]
mov edx, dword [esp + ecx + 0x3c]
cmp edx, dword [esp + ecx + 0x2c]
jne 0x47d208
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x47d0f0
xor eax, eax
push edi
push 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x34], al
mov dword [esp + 0x35], eax
mov dword [esp + 0x39], eax
mov dword [esp + 0x3d], eax
mov word [esp + 0x41], ax
mov byte [esp + 0x43], al
lea eax, [esp + 0x34]
push 1
push eax
call fcn.0048d33a
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x47d1d8
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x2c]
push ecx
push 0x80
mov edx, ecx
push edx
push eax
push ebx
call dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add esp, 0x14
cmp dword [esp + 0x58], 0
jne 0x47d170
mov esi, eax
cmp eax, 0x10
jb 0x47d175
mov esi, 0x10
sub eax, ebp
mov ebp, dword [esp + 0x24]
push ebp
push esi
lea ecx, [esp + 0x34]
push 1
push ecx
mov dword [esp + 0x28], eax
call fcn.0048f994
add esp, 0x10
push edi
cmp eax, esi
jne 0x47d235
add dword [esp + 0x18], esi
xor eax, eax
push 0x10
lea edx, [esp + 0x34]
push 1
push edx
mov byte [esp + 0x3c], 0
mov dword [esp + 0x3d], eax
mov dword [esp + 0x41], eax
mov dword [esp + 0x45], eax
mov word [esp + 0x49], ax
mov byte [esp + 0x4b], al
call fcn.0048d33a
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x47d144
mov esi, dword [esp + 0x28]
push edi
call fcn.0048d6c3
mov eax, dword [esp + 0x28]
push eax
call fcn.0048d6c3
push esi
call fcn.0048d7f0
mov eax, dword [esp + 0x20]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0048c97b
add esp, 0x44
ret
push edi
call fcn.0048d6c3
push ebp
call fcn.0048d6c3
push esi
call fcn.0048d7f0
add esp, 0xc
mov eax, 0xfffffffc
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0048c97b
add esp, 0x44
ret
call fcn.0048d6c3
push ebp
call fcn.0048d6c3
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0048d7f0
add esp, 0xc
jmp 0x47d28b
push edi
call fcn.0048d6c3
push ebp
call fcn.0048d6c3
push esi
call fcn.0048d7f0
add esp, 0xc
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.0048c97b
add esp, 0x44
ret
push edi
call fcn.0048d6c3
push esi
call fcn.0048d7f0
add esp, 8
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 0xfffffffd
call fcn.0048c97b
add esp, 0x44
ret