Function at 0x4c7410
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5effe3
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x64c874]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
push edi
mov eax, dword [0x64c874]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x20], eax
push str.mapped_files
mov eax, esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x38], esi
call fcn.005050a0
mov ebx, eax
test ebx, ebx
je 0x4c7596
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x4c7596
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
mov edx, dword [ebx + 0xc]
jne 0x4c749d
xor eax, eax
jmp 0x4c74a5
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x4c7596
push 0x90
call fcn.0059b847
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
mov dword [esp + 0x98], 0
je 0x4c74d9
mov edx, dword [edi + 0x34]
push edx
push eax
call fcn.0048dea0
jmp 0x4c74db
xor eax, eax
mov dword [esp + 0x98], 0xffffffff
mov esi, dword [edi + 0x30]
test esi, esi
mov dword [edi + 0x30], eax
je 0x4c74fe
call fcn.00489630
push esi
call fcn.0059b877
add esp, 4
xor esi, esi
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4c750e
xor eax, eax
jmp 0x4c7516
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp esi, eax
jge 0x4c7592
mov eax, esi
lea ecx, [esp + 0x64]
mov edx, ebx
call fcn.005052f0
mov dword [esp + 0x98], 1
cmp dword [esp + 0x78], 0
jne 0x4c755d
mov dword [esp + 0x98], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x4c758a
mov eax, dword [esp + 0x68]
push eax
call fcn.0059b877
add esp, 4
add esi, 1
jmp 0x4c7500
mov eax, dword [edi + 0x30]
push esi
push eax
lea eax, [esp + 0x6c]
call fcn.004adca0
mov dword [esp + 0x98], 0xffffffff
cmp dword [esp + 0x7c], 0x10
jb 0x4c758a
mov ecx, dword [esp + 0x68]
push ecx
call fcn.0059b877
add esp, 4
add esi, 1
jmp 0x4c7500
mov esi, dword [esp + 0x34]
push str.file_priority
mov eax, esi
call fcn.005050a0
mov edi, eax
test edi, edi
je 0x4c7666
mov edx, dword [edi + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x4c7666
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 0x30]
test ecx, ecx
mov eax, dword [edi + 0xc]
jne 0x4c75d2
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 4]
test edx, edx
jne 0x4c75dd
xor ecx, ecx
jmp 0x4c75e5
mov ecx, dword [ecx + 8]
sub ecx, edx
sar ecx, 5
cmp eax, ecx
jne 0x4c7666
mov ebx, dword [esp + 0x14]
add ebx, 0x38
push 0
mov ecx, ebx
call fcn.0046e620
xor esi, esi
cmp dword [edi + 0xc], esi
jle 0x4c7666
mov dword [esp + 0x1c], esi
mov edx, dword [edi]
add edx, dword [esp + 0x1c]
je 0x4c762a
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x4c762a
call fcn.00504cd0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
jmp 0x4c763a
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], 0
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4c764a
mov eax, dword [ebx + 8]
sub eax, ecx
cmp esi, eax
jb 0x4c764f
call fcn.005b8b18
mov ecx, dword [ebx + 4]
mov dl, byte [esp + 0x24]
add dword [esp + 0x1c], 0x14
mov byte [esi + ecx], dl
add esi, 1
cmp esi, dword [edi + 0xc]
jl 0x4c7604
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x34]
push str.file_sizes
mov dword [esp + 0x9c], 2
call fcn.005050a0
mov ecx, eax
cmp ecx, ebx
mov dword [esp + 0x24], ecx
je 0x4c76a8
mov eax, dword [ecx + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
je 0x4c76e0
mov eax, 1
test byte [0x65b670], al
jne 0x4c76d6
or dword [0x65b670], eax
push 0x5fbd80
mov dword [0x65b674], 0x6155fc
call fcn.005b89dc
mov esi, dword [esp + 0x40]
add esp, 4
mov eax, 0x82
jmp 0x4c7bce
cmp dword [ecx + 0xc], ebx
mov dword [esp + 0x30], ebx
jle 0x4c77ca
mov dword [esp + 0x1c], ebx
mov eax, dword [ecx]
add eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x4c779e
cmp dword [eax + 0xc], 2
jne 0x4c779e
mov esi, dword [eax]
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x4c779e
mov edx, dword [esi + 0x24]
and edx, 0xe0000000
cmp edx, eax
jne 0x4c779e
lea edx, [esi + 0x14]
cmp edx, ebx
je 0x4c7755
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x4c7755
call fcn.00504cd0
mov ebx, eax
mov edi, edx
jmp 0x4c7759
xor ebx, ebx
xor edi, edi
test esi, esi
je 0x4c7777
mov ecx, dword [esi + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x4c7777
mov edx, esi
call fcn.00504cd0
jmp 0x4c777b
xor eax, eax
xor edx, edx
mov dword [esp + 0x6c], ebx
lea ebx, [esp + 0x64]
lea esi, [esp + 0x38]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], edi
call fcn.004ce720
mov ecx, dword [esp + 0x24]
xor ebx, ebx
mov eax, dword [esp + 0x30]
add dword [esp + 0x1c], 0x14
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x30], eax
jl 0x4c76f1
mov esi, dword [esp + 0x3c]
cmp esi, ebx
je 0x4c77ca
mov edx, dword [esp + 0x40]
sub edx, esi
sar edx, 4
jne 0x4c7802
mov eax, 1
test byte [0x65b670], al
jne 0x4c77f8
or dword [0x65b670], eax
push 0x5fbd80
mov dword [0x65b674], 0x6155fc
call fcn.005b89dc
mov esi, dword [esp + 0x40]
add esp, 4
mov eax, 0x83
jmp 0x4c7bce
mov edi, dword [esp + 0x34]
push str.slots
mov eax, edi
mov byte [esp + 0x17], 0
call fcn.005050a0
cmp eax, ebx
je 0x4c7889
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x4c7889
mov edx, dword [esp + 0x14]
mov ebx, dword [eax + 0xc]
mov ecx, dword [edx + 0x34]
cmp ebx, dword [ecx + 0x88]
jne 0x4c78e5
xor edi, edi
test ebx, ebx
mov byte [esp + 0x13], 1
jle 0x4c78e5
mov esi, dword [eax]
test esi, esi
je 0x4c78e0
mov edx, dword [esi + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x4c78e0
mov edx, esi
call fcn.00504cd0
test edx, edx
jl 0x4c78e0
jg 0x4c787d
test eax, eax
jb 0x4c78e0
add edi, 1
add esi, 0x14
cmp edi, ebx
jl 0x4c7853
jmp 0x4c78e5
push str.pieces
mov eax, edi
call fcn.005050a0
cmp eax, ebx
je 0x4c7b9b
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x4c7b9b
mov edx, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
mov edx, dword [edx + 0x34]
cmp ecx, dword [edx + 0x88]
jne 0x4c78e5
mov edx, dword [eax]
xor eax, eax
cmp ecx, ebx
mov byte [esp + 0x13], 1
jle 0x4c78e5
test byte [eax + edx], 1
je 0x4c78e0
add eax, 1
cmp eax, ecx
jl 0x4c78d1
jmp 0x4c78e5
mov byte [esp + 0x13], 0
mov eax, dword [esp + 0x34]
push eax
mov eax, str.allocation
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1f], 0
call fcn.00504f80
mov esi, dword [eax + 0x14]
mov ecx, esi
cmp ecx, esi
jae 0x4c7906
cmp esi, 7
mov ecx, esi
jb 0x4c7912
mov ecx, 7
mov edi, 0x10
cmp dword [eax + 0x18], edi
jb 0x4c7921
mov edx, dword [eax + 4]
jmp 0x4c7924
lea edx, [eax + 4]
mov eax, ecx
mov ecx, str.compact
call fcn.00432470
test eax, eax
jne 0x4c7948
cmp esi, 7
jae 0x4c793e
or eax, 0xffffffff
jmp 0x4c7946
xor eax, eax
cmp esi, 7
setne al
test eax, eax
setne bl
mov byte [esp + 0x98], 2
cmp dword [esp + 0x60], edi
jb 0x4c7966
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0059b877
add esp, 4
test bl, bl
je 0x4c796f
mov byte [esp + 0x1b], 1
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0x14]
je 0x4c7b23
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4c7988
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4c7993
xor edx, edx
jmp 0x4c799b
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 5
mov ecx, dword [esp + 0x3c]
test ecx, ecx
mov edi, dword [esp + 0x40]
jne 0x4c79ab
xor eax, eax
jmp 0x4c79b2
mov eax, edi
sub eax, ecx
sar eax, 4
cmp edx, eax
je 0x4c7a02
test byte [0x65b670], 1
jne 0x4c79e1
or dword [0x65b670], 1
push 0x5fbd80
mov dword [0x65b674], 0x6155fc
call fcn.005b89dc
mov ecx, dword [esp + 0x40]
add esp, 4
test ecx, ecx
mov esi, dword [esp + 0x20]
mov eax, 0x85
mov edx, 0x65b674
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x4c7be9
push ecx
jmp 0x4c7be1
cmp ecx, edi
mov esi, ecx
jbe 0x4c7a0d
call fcn.005b8b18
mov eax, dword [ebx + 0x30]
test eax, eax
mov edi, esi
jne 0x4c7a19
mov eax, dword [ebx + 0x34]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x14], eax
jbe 0x4c7a2a
call fcn.005b8b18
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4c7a34
mov eax, dword [ebx + 0x34]
mov ecx, dword [eax + 8]
cmp dword [eax + 4], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
jbe 0x4c7a50
call fcn.005b8b18
lea esp, [esp]
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x14], edx
je 0x4c7a5f
call fcn.005b8b18
cmp esi, dword [esp + 0x24]
je 0x4c7b23
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 8]
jb 0x4c7a77
call fcn.005b8b18
test byte [esi + 0x18], 1
jne 0x4c7ab3
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 8]
jb 0x4c7a8b
call fcn.005b8b18
cmp edi, dword [esp + 0x40]
jb 0x4c7a96
call fcn.005b8b18
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
shld edx, eax, 0x10
shl eax, 0x10
mov cl, 0x10
call fcn.005da4b0
cmp eax, dword [edi]
jne 0x4c7ad7
cmp edx, dword [edi + 4]
jne 0x4c7ad7
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 8]
jb 0x4c7ac1
call fcn.005b8b18
add esi, 0x20
cmp edi, dword [esp + 0x40]
jb 0x4c7acf
call fcn.005b8b18
add edi, 0x10
jmp 0x4c7a50
test byte [0x65b670], 1
jne 0x4c7afe
or dword [0x65b670], 1
push 0x5fbd80
mov dword [0x65b674], 0x6155fc
call fcn.005b89dc
add esp, 4
mov edx, dword [esp + 0x20]
mov eax, 0x86
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
test eax, eax
mov ecx, 0x65b674
mov dword [edx + 4], ecx
je 0x4c7be9
push eax
jmp 0x4c7be1
mov eax, dword [ebx + 0x2c]
mov al, byte [eax + 0x1f4]
neg al
lea edx, [esp + 0x38]
sbb eax, eax
xor ecx, ecx
and eax, 2
cmp byte [esp + 0x1b], cl
sete cl
or eax, ecx
push eax
push edx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0xffffffffffffffff
lea eax, [ebx + 0x48]
push 0
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], 0
push eax
mov byte [ecx + 4], 0
call fcn.0040b390
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4c7b76
mov eax, dword [ebx + 0x34]
mov edx, dword [esp + 0x44]
mov ecx, eax
call fcn.004c5320
mov bl, al
mov eax, dword [esp + 0x60]
add esp, 0x24
test eax, eax
je 0x4c7b97
push eax
call fcn.0059b877
add esp, 4
mov al, bl
jmp 0x4c7beb
mov eax, 1
test byte [0x65b670], al
jne 0x4c7bc9
or dword [0x65b670], eax
push 0x5fbd80
mov dword [0x65b674], 0x6155fc
call fcn.005b89dc
mov esi, dword [esp + 0x40]
add esp, 4
mov eax, 0x84
cmp esi, ebx
mov edx, dword [esp + 0x20]
mov ecx, 0x65b674
mov dword [edx], eax
mov dword [edx + 4], ecx
je 0x4c7be9
push esi
call fcn.0059b877
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.005b88a9
mov esp, ebp
pop ebp
ret 8