Function at 0x4c5b90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e6bc3
mov eax, dword fs:[0]
push eax
sub esp, 0x1f8
mov eax, dword [0x51b08c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xcc], ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xb4], ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0xa8], ebx
test ebx, ebx
je 0x4c5bee
cmp dword [ebx + 0x208], 0
jne 0x4c5bf5
lea ecx, [ebp - 0xa8]
call fcn.004c7b70
mov al, 2
jmp 0x4c64d8
mov dword [ebp - 0x14], 0
mov esi, dword [ebx + 0x218]
movzx eax, word [ebx + 0x234]
mov dword [ebp - 0xbc], esi
inc esi
imul esi, eax
xor al, al
push 0x80
mov byte [ebp - 0xb5], al
lea eax, [ebp - 0x184]
push 0
push eax
mov dword [ebp - 0xc0], esi
mov dword [ebp - 0xc4], 0
call fcn.004a35f0
push 0x80
lea eax, [ebp - 0x204]
mov byte [ebp - 0xaa], 0
push 0
push eax
call fcn.004a35f0
xor edi, edi
xorps xmm0, xmm0
movq qword [ebp - 0x20], xmm0
add esp, 0x18
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 4], edi
movzx eax, word [ebx + 0x234]
shr eax, 2
imul eax, dword [ebx + 0x214]
mov byte [ebp - 0xa9], 0
test eax, eax
je 0x4c5f32
mov edi, dword [ebp - 0xbc]
nop word [eax + eax]
cmp byte [0x51f324], 1
je 0x4c60df
test edi, edi
js 0x4c5f03
cmp edi, eax
jle 0x4c5cdd
push str.SAT_index_out_of_bounds.
call fcn.004076b0
add esp, 4
mov byte [ebp - 0xa9], 1
push 0
push 0
push esi
mov esi, dword [ebp - 0xb4]
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp byte [ebp - 0xa9], 0
jne 0x4c5d18
mov eax, dword [ebx + 0x208]
mov esi, dword [eax + edi*4]
movzx eax, word [ebx + 0x234]
inc esi
imul esi, eax
mov dword [ebp - 0xc0], esi
mov esi, dword [ebp - 0xb4]
movzx eax, word [ebx + 0x234]
mov dword [ebp - 0xc8], 0
test eax, 0xffffff80
jbe 0x4c5eac
nop dword [eax]
nop dword [eax + eax]
cmp byte [0x51f324], 1
je 0x4c60df
push 0
lea eax, [ebp - 0x14]
push eax
push 0x80
lea eax, [ebp - 0xa0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x14], 0x80
jb 0x4c5ef9
mov al, byte [ebp - 0x5e]
test al, al
je 0x4c5e87
cmp al, 5
jne 0x4c5da1
mov ecx, 0x20
mov byte [ebp - 0xb5], 1
lea esi, [ebp - 0xa0]
lea edi, [ebp - 0x184]
rep movsd dword es:[edi], dword [esi]
jmp 0x4c5e81
cmp byte [ebp - 0xaa], 0
jne 0x4c5de3
push 0x20
lea eax, [ebp - 0xa0]
push str.Catalog
push eax
call fcn.004ac930
add esp, 0xc
test eax, eax
jne 0x4c5de3
mov ecx, 0x20
mov byte [ebp - 0xaa], 1
lea esi, [ebp - 0xa0]
lea edi, [ebp - 0x204]
rep movsd dword es:[edi], dword [esi]
jmp 0x4c5e81
push 0x28
call fcn.004a8f05
push 0x40
mov esi, eax
call fcn.004a8f05
push 0x1f
lea ecx, [ebp - 0xa0]
mov dword [esi + 0x18], eax
push ecx
push 0x20
push eax
call fcn.004aca37
lea eax, [ebp - 0x34]
mov edx, 8
push 8
push eax
lea ecx, [esi + 8]
call fcn.004c74a0
mov eax, dword [ebp - 0x2c]
add esp, 0x20
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x20], eax
mov al, byte [ebp - 0x5e]
mov byte [esi + 0x24], al
xor eax, eax
mov dword [esi + 0x10], ebx
mov byte [esi + 0x25], 0
mov word [ebx + 0x236], ax
mov eax, dword [esi + 0x10]
mov byte [eax + 0x238], 0
mov eax, dword [esi + 0x10]
inc dword [eax + 0x230]
mov eax, dword [ebp - 0xa4]
mov dword [esi + 0x14], 0
mov dword [esi], 0
mov dword [esi + 4], 0
test eax, eax
je 0x4c5e75
mov dword [eax + 0x14], esi
jmp 0x4c5e7b
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc8]
movzx eax, word [ebx + 0x234]
inc ecx
shr eax, 7
mov dword [ebp - 0xc8], ecx
cmp ecx, eax
jl 0x4c5d40
mov edi, dword [ebp - 0xbc]
cmp byte [ebp - 0xa9], 1
je 0x4c6057
mov eax, dword [ebx + 0x208]
mov ecx, dword [ebp - 0xc4]
inc ecx
mov dword [ebp - 0xc4], ecx
mov edi, dword [eax + edi*4]
movzx eax, word [ebx + 0x234]
shr eax, 2
imul eax, dword [ebx + 0x214]
mov dword [ebp - 0xbc], edi
cmp ecx, eax
jae 0x4c6057
mov esi, dword [ebp - 0xc0]
jmp 0x4c5cb0
push str.Premature_end_of_file_encountered_while_building_the_directory.
jmp 0x4c604f
cmp edi, 0xfffffffe
jne 0x4c604a
mov edi, dword [ebp - 0xb0]
test edi, edi
je 0x4c5f25
mov eax, dword [edi + 0x10]
mov byte [eax + 0x238], 3
jmp 0x4c605d
push str.No_entries_were_found.
call fcn.004076b0
add esp, 4
push dword [ebx + 0x210]
call fcn.004a51e5
push dword [ebx + 0x20c]
call fcn.004a51e5
push dword [ebx + 0x208]
call fcn.004a51e5
push ebx
call fcn.004a51e5
add esp, 0x10
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0x18]
mov esi, dword [eax]
cmp esi, eax
je 0x4c5f94
nop dword [eax + eax]
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x4c5f7d
mov eax, dword [ecx]
push 1
call dword [eax]
push esi
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebx + 0x18]
call fcn.00404ae0
mov esi, dword [eax]
cmp esi, dword [ebx + 0x18]
jne 0x4c5f70
test edi, edi
je 0x4c64cf
nop dword [eax]
mov dword [ebp - 0xa8], 0
mov esi, edi
mov dword [ebp - 0xe8], esi
mov dword [ebp - 0xa4], 0
test edi, edi
je 0x4c64ad
lea eax, [ebp - 0xa4]
mov ecx, edi
push eax
lea eax, [ebp - 0xa8]
push eax
call fcn.004c6da0
mov ebx, eax
test ebx, ebx
je 0x4c64ad
mov cl, byte [edi + 0x25]
shr cl, 1
and cl, 1
mov dword [ebp - 0xbc], 0
test byte [edi + 0x25], 8
mov byte [ebp - 0xc8], cl
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb4], 0
je 0x4c6277
mov esi, dword [ebp - 0xa4]
cmp esi, 0x18
jne 0x4c61ab
lea eax, [ebx + 8]
test eax, eax
je 0x4c6119
mov ecx, dword [eax]
mov dword [ebp - 0xb4], ecx
jmp 0x4c6137
push str.Invalid_SAT_termination_index.
call fcn.004076b0
add esp, 4
mov edi, dword [ebp - 0xb0]
test edi, edi
je 0x4c5f32
mov al, byte [ebp - 0xb5]
cmp al, 1
jne 0x4c609d
push ebx
mov ebx, dword [ebp - 0xb4]
lea esi, [ebp - 0x184]
sub esp, 0x80
mov ecx, 0x20
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push ebx
call fcn.004c6500
cmp al, 2
je 0x4c6112
mov edi, dword [ebp - 0xb0]
jmp 0x4c60a3
mov ebx, dword [ebp - 0xb4]
cmp byte [ebp - 0xaa], 1
jne 0x4c5f5c
sub esp, 0x80
lea esi, [ebp - 0x204]
mov edi, esp
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0xb0]
push edi
push ebx
call fcn.004c66e0
cmp al, 2
jne 0x4c5f5c
jmp 0x4c64d1
cmp dword [ebp - 0xb0], 0
jne 0x4c6112
push dword [ebx + 0x210]
call fcn.004a51e5
push dword [ebx + 0x20c]
call fcn.004a51e5
push dword [ebx + 0x208]
call fcn.004a51e5
push ebx
call fcn.004a51e5
add esp, 0x10
mov al, 2
jmp 0x4c64d1
mov dword [ebp - 0xb4], 0
test eax, eax
jne 0x4c6137
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
lea eax, [ebx + 0xc]
test eax, eax
je 0x4c6148
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
jmp 0x4c6166
mov dword [ebp - 0xbc], 0
test eax, eax
jne 0x4c6166
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
lea eax, [ebx + 0x10]
test eax, eax
je 0x4c6181
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
mov byte [ebp - 0xc8], 2
jmp 0x4c6248
mov dword [ebp - 0xc0], 0
test eax, eax
jne 0x4c619f
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
mov byte [ebp - 0xc8], 2
jmp 0x4c6248
cmp esi, 0x34
jne 0x4c6248
lea eax, [ebx + 4]
test eax, eax
je 0x4c61c5
mov ecx, dword [eax]
mov dword [ebp - 0xbc], ecx
jmp 0x4c61e3
mov dword [ebp - 0xbc], 0
test eax, eax
jne 0x4c61e3
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
lea eax, [ebx + 8]
test eax, eax
je 0x4c61f4
mov ecx, dword [eax]
mov dword [ebp - 0xc0], ecx
jmp 0x4c6212
mov dword [ebp - 0xc0], 0
test eax, eax
jne 0x4c6212
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
lea eax, [ebx + 0xc]
test eax, eax
je 0x4c6223
mov ecx, dword [eax]
mov dword [ebp - 0xb4], ecx
jmp 0x4c6241
mov dword [ebp - 0xb4], 0
test eax, eax
jne 0x4c6241
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
mov byte [ebp - 0xc8], 3
lea eax, [esi - 4]
add eax, ebx
je 0x4c6259
mov ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
jmp 0x4c6277
mov dword [ebp - 0xc4], 0
test eax, eax
jne 0x4c6277
call fcn.004ac91d
mov dword [eax], 0x16
call fcn.004a4f51
mov edx, dword [edi + 0x18]
xor eax, eax
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd0], 7
mov dword [ebp - 0xd4], 0
mov word [ebp - 0xe4], ax
cmp word [edx], ax
je 0x4c62c4
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c62b5
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [ebp - 0xe4]
call fcn.00403330
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0xcc]
mov eax, dword [esi + 0x18]
lea ecx, [esi + 0x18]
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0xe4]
push eax
call fcn.00405910
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0xf0], eax
cmp eax, ecx
je 0x4c635e
cmp dword [eax + 0x24], 8
jb 0x4c630b
mov esi, dword [eax + 0x10]
jmp 0x4c630e
lea esi, [eax + 0x10]
cmp dword [ebp - 0xd0], 8
lea edx, [ebp - 0xe4]
mov eax, dword [eax + 0x20]
mov edi, eax
cmovae edx, dword [ebp - 0xe4]
cmp dword [ebp - 0xd4], eax
mov dword [ebp - 0xec], eax
cmovb edi, dword [ebp - 0xd4]
test edi, edi
jne 0x4c6460
xor eax, eax
test eax, eax
jne 0x4c6487
mov eax, dword [ebp - 0xd4]
cmp eax, dword [ebp - 0xec]
jae 0x4c648d
mov esi, ecx
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0xd0]
cmp eax, 8
jb 0x4c63bd
mov ecx, dword [ebp - 0xe4]
inc eax
cmp eax, 0x7fffffff
ja 0x4c64f6
add eax, eax
cmp eax, 0x1000
jb 0x4c63b4
test cl, 0x1f
jne 0x4c64f6
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4c64f6
sub ecx, eax
cmp ecx, 4
jb 0x4c64f6
cmp ecx, 0x23
ja 0x4c64f6
mov ecx, eax
push ecx
call fcn.00417a10
add esp, 4
xor eax, eax
mov dword [ebp - 0xd0], 7
mov dword [ebp - 0xd4], 0
mov word [ebp - 0xe4], ax
cmp esi, dword [ebp - 0xf4]
jne 0x4c6498
push dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xa4]
push dword [ebp - 0xc4]
mov edx, dword [ebp - 0xa8]
push dword [ebp - 0xc0]
lea ecx, [ebx + ecx]
push dword [ebp - 0xbc]
push dword [ebp - 0xc8]
call fcn.004c7620
mov edi, dword [ebp - 0xb0]
add esp, 0x14
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0xfc]
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0xfc], ecx
lea ecx, [esi + 0x18]
push eax
call fcn.004078a0
push eax
add eax, 0x10
push eax
push ecx
lea eax, [ebp - 0x104]
push eax
lea ecx, [esi + 0x18]
call fcn.00407940
jmp 0x4c649e
mov ax, word [edx]
cmp ax, word [esi]
jne 0x4c6476
add edx, 2
add esi, 2
sub edi, 1
jmp 0x4c633c
movzx eax, word [edx]
cmp ax, word [esi]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4c6344
js 0x4c635e
mov esi, dword [ebp - 0xf0]
jmp 0x4c6360
mov edi, dword [ebp - 0xb0]
push ebx
call fcn.004a51e5
mov esi, dword [ebp - 0xe8]
add esp, 4
mov edi, dword [edi + 0x14]
push dword [esi + 0x18]
mov dword [ebp - 0xb0], edi
call fcn.004a51e5
push esi
call fcn.004a51e5
add esp, 8
test edi, edi
jne 0x4c5fa0
mov al, 1
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00499a52
mov esp, ebp
pop ebp
ret 8
call fcn.004a4f61
int3