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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c8
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x624], eax
mov eax, dword [ebp + 0xc]
push 0x48
mov dword [ebp - 0x614], eax
lea eax, [ebp - 0x680]
push 0
push eax
mov dword [ebp - 0x610], 2
call fcn.00595760
lea eax, [ebp - 0x600]
push eax
call fcn.0044eb60
mov dword [ebp - 0x3d4], eax
lea eax, [ebp - 0x57c]
push 0
push eax
mov dword [ebp - 0x600], 0x49f5b0
call fcn.005920d0
add esp, 0x18
test eax, eax
lea eax, [ebp - 0x3d4]
je 0x58b985
push eax
call fcn.0044ed70
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push 0x1b0
push 0x3e
push eax
call fcn.0044f200
lea eax, [ebp - 0x600]
push eax
call fcn.0044eb60
push 0x168
mov dword [ebp - 0x53c], eax
lea eax, [ebp - 0x53c]
push 0x3e
push eax
mov dword [ebp - 0x600], 0x49f5b0
call fcn.0044ec50
lea eax, [ebp - 0x57c]
push 0
push eax
call fcn.005920d0
add esp, 0x24
test eax, eax
je 0x58ba04
lea eax, [ebp - 0x53c]
push eax
call fcn.0044ed70
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044ed70
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x58ba1c
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
je 0x58ba1c
push ecx
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
jmp 0x58ba24
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x680]
push eax
call fcn.005918b0
mov eax, dword [ebp + 0x24]
add esp, 0x14
and al, 1
mov byte [ebp - 0x67b], 0
mov byte [ebp - 0x67c], al
mov eax, dword [ebp + 0x20]
movzx eax, ax
dec eax
cmp eax, 4
ja case.default.0x58ba51
jmp dword [eax*4 + 0x58c220]
mov dword [ebp - 0x680], 5
jmp 0x58ba9e
mov dword [ebp - 0x680], 6
jmp 0x58ba9e
mov dword [ebp - 0x680], 7
jmp 0x58ba9e
mov dword [ebp - 0x680], 2
jmp 0x58ba9e
mov dword [ebp - 0x680], 1
jmp 0x58ba9e
mov dword [ebp - 0x680], 0
mov eax, dword [ebp - 0x538]
push 0x628c60
push dword [ebp - 0x624]
mov ecx, dword [eax + 0x2c]
mov eax, dword [ebp - 0x3d0]
mov dword [eax + 0x2c], ecx
call fcn.005931b4
add esp, 8
mov dword [ebp - 0x60c], eax
test eax, eax
je 0x58b972
lea eax, [ebp - 0x57c]
push 0
push eax
call fcn.005920d0
add esp, 8
test eax, eax
je 0x58bb1f
lea eax, [ebp - 0x53c]
push eax
call fcn.0044ed70
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044ed70
push dword [ebp - 0x60c]
call fcn.00593079
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x60c]
lea eax, [ebp - 0x3d4]
push eax
call fcn.005ba3a0
push dword [ebp - 0x610]
lea eax, [ebp - 0x3d4]
push eax
call fcn.00591600
lea eax, [ebp - 0x3d4]
push 1
push eax
call fcn.0044f4e0
mov si, word [ebp + 0x20]
add esp, 0x18
cmp si, 6
jne 0x58bc8e
mov ebx, dword [ebp - 0x2c8]
mov ecx, ebx
mov dword [ebp - 0x604], ebx
test ebx, ebx
je 0x58bde9
cmp byte [ecx + 4], 0xe1
je 0x58bb89
mov ecx, dword [ecx]
test ecx, ecx
jne 0x58bb78
jmp 0x58bde9
mov dword [ebp - 0x638], 1
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x634], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x630], eax
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x638]
mov dword [ebp - 0x62c], 0
push eax
call fcn.00437530
add esp, 8
test eax, eax
je 0x58bddd
mov eax, dword [ebp - 0x628]
add eax, 0xfffffffe
cmp eax, 6
ja case.default.0x58bbdf
jmp dword [eax*4 + 0x58c234]
mov dword [ebp - 0x680], 1
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 6
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 2
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 3
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 5
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 4
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 7
lea eax, [ebp - 0x638]
jmp 0x58bdd2
mov dword [ebp - 0x680], 0
lea eax, [ebp - 0x638]
jmp 0x58bdd2
test byte [ebp + 0x24], 4
je 0x58bddd
mov ebx, dword [ebp - 0x2c8]
mov dword [ebp - 0x604], ebx
test ebx, ebx
je 0x58bde9
lea esp, [esp]
cmp byte [ebx + 4], 0xe1
jne 0x58bcf6
mov dword [ebp - 0x690], 1
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x68c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x688], eax
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x690]
mov dword [ebp - 0x684], 0
push eax
call fcn.00437530
add esp, 8
test eax, eax
jne 0x58bd01
mov ebx, dword [ebx]
test ebx, ebx
jne 0x58bcb0
jmp 0x58bddd
test byte [ebp + 0x24], 2
je 0x58bdcc
cmp si, 1
je 0x58bd21
cmp si, 2
je 0x58bd21
cmp si, 3
jne 0x58bdcc
mov ecx, dword [ebp - 0x61c]
movdqa xmm0, xmmword [0x607490]
movdqu xmmword [ebp - 0x214], xmm0
movdqa xmm0, xmmword [0x607480]
lea eax, [ecx - 2]
movdqu xmmword [ebp - 0x224], xmm0
cmp eax, 6
ja case.0x58bd4f.5
jmp dword [eax*4 + 0x58c250]
mov eax, 1
jmp 0x58bd6d
mov eax, 2
jmp 0x58bd6d
mov eax, 3
jmp 0x58bd6d
xor eax, eax
cmp si, 1
jne 0x58bd76
inc eax
jmp 0x58bd8a
cmp si, 2
jne 0x58bd81
add eax, 2
jmp 0x58bd8a
cmp si, 3
jne 0x58bd8a
add eax, 3
cmp ecx, 5
je 0x58bdb3
cmp ecx, 2
je 0x58bdb3
cmp ecx, 7
je 0x58bdb3
cmp ecx, 4
je 0x58bdb3
and eax, 0x80000003
jns 0x58bdaa
dec eax
or eax, 0xfffffffc
inc eax
mov eax, dword [ebp + eax*4 - 0x214]
jmp 0x58bdc6
and eax, 0x80000003
jns 0x58bdbf
dec eax
or eax, 0xfffffffc
inc eax
mov eax, dword [ebp + eax*4 - 0x224]
mov dword [ebp - 0x680], eax
lea eax, [ebp - 0x690]
push 1
push eax
call fcn.00438b30
add esp, 8
mov ebx, dword [ebp - 0x2c8]
mov dword [ebp - 0x604], ebx
mov eax, dword [ebp - 0x680]
cmp eax, 5
je 0x58be02
cmp eax, 7
je 0x58be02
cmp eax, 6
jne 0x58be75
mov ecx, ebx
test ebx, ebx
je 0x58be75
cmp byte [ecx + 4], 0xe1
je 0x58be16
mov ecx, dword [ecx]
test ecx, ecx
jne 0x58be08
jmp 0x58be75
mov dword [ebp - 0x6a0], 1
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x69c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x698], eax
lea eax, [ebp - 0x3d4]
push eax
mov dword [ebp - 0x694], 0
call fcn.00465d90
push dword [ebp - 0x378]
lea eax, [ebp - 0x6a0]
push dword [ebp - 0x374]
push eax
call fcn.00438ab0
mov ebx, dword [ebp - 0x2c8]
add esp, 0x10
mov eax, dword [ebp - 0x680]
mov dword [ebp - 0x604], ebx
test eax, eax
je 0x58bfd8
test ebx, ebx
je 0x58bfd8
cmp byte [ebx + 4], 0xe1
je 0x58be9c
mov ebx, dword [ebx]
mov dword [ebp - 0x604], ebx
test ebx, ebx
jne 0x58be85
jmp 0x58bfd8
lea eax, [ebp - 0x6c8]
push eax
push dword [ebx + 0xc]
push dword [ebx + 0x10]
call fcn.00536a50
add esp, 0xc
test eax, eax
je 0x58bfd8
lea eax, [ebp - 0x204]
push 0x200
push eax
call fcn.0045c8f0
lea eax, [ebp - 0x204]
push 0x5c3924
push eax
call fcn.005931b4
mov esi, eax
add esp, 0x10
test esi, esi
je 0x58bfd8
mov ecx, dword [ebx + 0x10]
add ecx, dword [ebp - 0x6c8]
push esi
push 1
push dword [ebp - 0x6c4]
push ecx
call fcn.0059628c
push esi
call fcn.00593079
mov eax, dword [ebp - 0x680]
add esp, 0x14
cmp eax, 7
ja case.0x58bf18.3
jmp dword [eax*4 + 0x58c26c]
mov eax, 1
mov dword [ebp - 0x608], eax
push 1
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0058b830
add esp, 0xc
cwde
test eax, eax
je 0x58bfc9
lea eax, [ebp - 0x204]
push 0x628c60
push eax
call fcn.005931b4
mov esi, eax
add esp, 8
test esi, esi
je 0x58bfc9
push 2
push 0
push esi
call fcn.00595cb4
push esi
call fcn.005960c7
push 0
push 0
push esi
mov edi, eax
call fcn.00595cb4
add esp, 0x1c
cmp edi, dword [ebp - 0x6c4]
ja 0x58bfc0
mov eax, dword [ebx + 0x10]
add eax, dword [ebp - 0x6c8]
push esi
push 1
push edi
push eax
call fcn.00595b79
add esp, 0x10
cmp dword [ebp - 0x6ac], 0
je 0x58bfc0
mov eax, dword [ebp - 0x6a8]
test eax, eax
je 0x58bfc0
push dword [ebp - 0x6a4]
push 1
push eax
call fcn.0058b730
add esp, 0xc
push esi
call fcn.00593079
add esp, 4
lea eax, [ebp - 0x204]
push eax
call fcn.0059630e
add esp, 4
lea eax, [ebp - 0x680]
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00591920
lea eax, [ebp - 0x3d4]
push eax
call fcn.005ba460
mov esi, eax
lea eax, [ebp - 0x53c]
push eax
lea eax, [ebp - 0x3d4]
mov dword [ebp - 0x620], esi
push eax
call fcn.005ba820
lea eax, [ebp - 0x680]
push eax
push esi
lea eax, [ebp - 0x53c]
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00591650
push 0x5c3924
push dword [ebp - 0x614]
mov dword [ebp - 0x618], eax
mov byte [ebp - 0x48a], 1
call fcn.005931b4
add esp, 0x2c
mov dword [ebp - 0x604], eax
test eax, eax
je 0x58b972
lea eax, [ebp - 0x57c]
push 0
push eax
call fcn.005920d0
add esp, 8
test eax, eax
lea eax, [ebp - 0x53c]
je 0x58c16b
push eax
call fcn.0044ed70
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044f410
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044ed70
push dword [ebp - 0x604]
call fcn.00593079
push dword [ebp - 0x60c]
call fcn.00593079
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov eax, 2
jmp 0x58bf24
mov eax, 3
jmp 0x58bf24
mov eax, 4
jmp 0x58bf24
mov eax, 5
jmp 0x58bf24
mov dword [ebp - 0x608], 0
jmp 0x58c107
mov eax, dword [ebp - 0x608]
test ax, ax
jne 0x58bf2a
mov ebx, dword [ebp - 0x6b4]
xor edx, edx
mov eax, ebx
mov edi, dword [ebp - 0x6bc]
imul eax, dword [ebp + 0x1c]
push 1
imul ebx, dword [ebp + 0x14]
div dword [ebp - 0x3b4]
xor edx, edx
push eax
mov eax, edi
imul edi, dword [ebp + 0x10]
imul eax, dword [ebp + 0x18]
div dword [ebp - 0x3b8]
xor edx, edx
push eax
mov eax, ebx
div dword [ebp - 0x3b4]
xor edx, edx
push eax
mov eax, edi
div dword [ebp - 0x3b8]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0058b760
mov ebx, dword [ebp - 0x604]
add esp, 0x18
jmp 0x58bf3c
mov esi, dword [ebp - 0x604]
push esi
push eax
call fcn.005ba260
push dword [ebp - 0x618]
lea eax, [ebp - 0x53c]
push eax
call fcn.005baa50
push dword [ebp - 0x610]
lea eax, [ebp - 0x53c]
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00591550
lea eax, [ebp - 0x680]
push eax
push dword [ebp - 0x620]
lea eax, [ebp - 0x53c]
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.00591790
lea eax, [ebp - 0x53c]
push eax
call fcn.0044ed80
lea eax, [ebp - 0x53c]
push eax
call fcn.0044ed70
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044f410
lea eax, [ebp - 0x3d4]
push eax
call fcn.0044ed70
push dword [ebp - 0x60c]
call fcn.00593079
add esp, 0x40
push esi
call fcn.00593079
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret