Function at 0x5c14bf
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [edx]
mov ebx, ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
jmp 0x5c1317
mov ecx, dword [ebp - 0xc]
cmp esi, edi
jae 0x5c21f6
mov dword [ebx], 3
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], esi
mov eax, dword [ecx + 0x14]
push edi
push esi
call eax
mov ecx, dword [ebp - 0xc]
push esi
mov ecx, dword [ecx]
mov dword [ebp - 0x14], eax
call ecx
mov ecx, dword [ebp - 8]
add esi, eax
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov dword [ebp - 0x10], esi
cmp eax, dword [ecx + 0x10]
jne 0x5c1361
test dword [ecx + 4], 0x100000
je 0x5c14d0
mov dword [ebx + 0x10], eax
mov dword [ebx + 4], 0
test eax, eax
je 0x5c13a1
test byte [ecx], 1
je 0x5c13a1
cmp eax, dword [ecx + 0x14]
je 0x5c1fea
cmp eax, dword [ecx + 0x18]
je 0x5c1536
cmp eax, dword [ecx + 0x1c]
je 0x5c2031
cmp eax, dword [ecx + 0x20]
je 0x5c200f
cmp eax, dword [ecx + 0x24]
je 0x5c1fa7
add eax, 0xfffffff7
cmp eax, 0x73
ja case.0x5c13b4.11
movzx eax, byte [eax + 0x5c2244]
jmp dword [eax*4 + 0x5c2208]
cmp esi, edi
jae 0x5c1fc1
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov ecx, dword [ebp - 8]
add esp, 8
cmp eax, 0x3f
jne 0x5c1fc1
test byte [ecx + 4], 2
je 0x5c1fc1
mov eax, dword [ebp - 0xc]
push esi
mov eax, dword [eax]
mov dword [ebp - 0x14], esi
call eax
add esi, eax
add esp, 4
cmp esi, edi
jae 0x5c1fbb
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
add esp, 8
cmp eax, 0x23
jne 0x5c1fbb
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov eax, dword [ebp - 0xc]
push esi
mov eax, dword [eax]
call eax
add esp, 0xc
add esi, eax
jmp 0x5c1430
cmp esi, edi
jae 0x5c145d
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
call ecx
mov ecx, dword [ebp - 8]
add esi, eax
mov eax, dword [ebp - 0x14]
add esp, 0xc
cmp eax, dword [ecx + 0x10]
jne 0x5c1469
cmp esi, edi
jb 0x5c1414
pop edi
pop esi
mov eax, 0xffffff8a
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x29
jne 0x5c1430
jmp 0x5c1314
mov eax, dword [ebp + 0xc]
test byte [eax], 2
je case.0x5c13b4.11
cmp esi, edi
jae 0x5c1314
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov edi, eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
call ecx
add esi, eax
mov eax, dword [ebp - 0xc]
push 0
mov eax, dword [eax + 0x30]
push edi
call eax
mov edi, dword [ebp + 8]
add esp, 0x14
test eax, eax
jne 0x5c1314
cmp esi, edi
jb 0x5c1487
jmp 0x5c1314
mov eax, dword [ebp + 0xc]
test byte [eax], 2
je case.0x5c13b4.11
jmp 0x5c1314
cmp esi, edi
jb 0x5c14e0
pop edi
pop esi
mov eax, 0xffffff98
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0xc], esi
mov eax, dword [eax + 0x14]
push edi
push esi
call eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
mov dword [ebp + 8], esi
call ecx
mov ecx, dword [ebp - 0x14]
add esi, eax
lea eax, [ecx - 0x27]
add esp, 0xc
mov dword [ebp - 0x10], esi
mov dword [ebx + 0x10], ecx
mov dword [ebx + 4], 1
cmp eax, 0x55
ja case.0x5c1523.44
movzx eax, byte [eax + 0x5c2340]
jmp dword [eax*4 + 0x5c22b8]
mov eax, dword [ebp - 8]
test byte [eax], 8
je case.0x5c13b4.11
mov dword [ebx + 0x10], 0
mov dword [ebx], 0xa
mov dword [ebx + 0x14], 0xffffffff
jmp 0x5c15bf
mov eax, dword [ebp - 8]
test byte [eax], 0x20
je case.0x5c13b4.11
mov dword [ebx], 0xa
mov dword [ebx + 0x10], 1
mov dword [ebx + 0x14], 0xffffffff
jmp 0x5c15bf
mov eax, dword [ebp - 8]
test byte [eax], 0x80
jmp 0x5c202b
mov eax, dword [ebp - 8]
test dword [eax], 0x200
je case.0x5c13b4.11
push dword [ebp + 0xc]
mov edx, edi
push ebx
lea ecx, [ebp - 0x10]
call fcn.005c0110
add esp, 8
test eax, eax
js 0x5c21fe
je 0x5c15bc
cmp eax, 2
jne 0x5c1b97
mov eax, dword [ebp - 8]
test dword [eax + 8], 0x200
jne 0x5c208e
mov esi, dword [ebp - 0x10]
cmp esi, edi
jae 0x5c20ef
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
add esp, 8
cmp eax, 0x3f
jne 0x5c2091
mov eax, dword [ebp - 8]
test dword [eax], 0x2000000
je 0x5c2091
push edi
mov edi, dword [ebp - 0xc]
push esi
mov eax, dword [edi + 0x14]
call eax
mov eax, dword [edi]
push esi
call eax
mov edi, dword [ebp - 4]
add esp, 0xc
add esi, eax
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x800
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xd
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x2000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xe
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x2000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xf
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x40000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0xc
mov dword [ebx + 0x14], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x40000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0xc
mov dword [ebx + 0x14], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x100000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0x40
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x100000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0x80
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x80000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0x100
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x80000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0x200
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x200000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 9
mov dword [ebx + 0x14], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x200000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 9
mov dword [ebx + 0x14], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x400000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 4
mov dword [ebx + 0x14], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x400000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 4
mov dword [ebx + 0x14], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax + 4], 0x80000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0xb
mov dword [ebx + 0x14], 0
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax + 4], 0x80000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 6
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0xb
mov dword [ebx + 0x14], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax], 0x4000
jne 0x5c1951
mov edi, dword [ebp - 4]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x4000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 0x10
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax], 0x4000
jne 0x5c197c
mov edi, dword [ebp - 4]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test dword [eax], 0x8000
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 9
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x10], 4
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x8000
je case.0x5c13b4.11
mov edi, dword [ebp - 4]
mov dword [ebx], 9
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
mov dword [ebx + 0x10], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x8000
je case.0x5c13b4.11
mov edi, dword [ebp - 4]
mov dword [ebx], 9
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
mov dword [ebx + 0x10], 8
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, edi
jae case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
mov dword [ebp + 0xc], esi
call eax
add esp, 8
cmp eax, 0x7b
mov eax, dword [ebp - 8]
jne 0x5c1a8a
test dword [eax], 0x40000000
je 0x5c1a8a
mov eax, dword [ebp - 0xc]
push esi
mov eax, dword [eax]
call eax
push dword [ebp - 0xc]
add esi, eax
push 8
mov edx, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], esi
call fcn.005beed0
add esp, 0xc
mov dword [ebp + 8], eax
test eax, eax
jns 0x5c19f9
pop edi
pop esi
mov eax, 0xfffffe6f
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x10]
cmp esi, edi
jae 0x5c1a2b
mov eax, dword [ebp - 0xc]
push 0xb
mov eax, dword [eax + 0x14]
push edi
push esi
call eax
add esp, 8
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
test eax, eax
je 0x5c1a2b
pop edi
pop esi
mov eax, 0xffffff2c
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
push dword [ebp + 0xc]
mov eax, dword [eax]
call eax
add eax, dword [ebp + 0xc]
add esp, 4
cmp esi, eax
jbe 0x5c1a79
cmp esi, edi
jae 0x5c1a79
push edi
mov edi, dword [ebp - 0xc]
push esi
mov eax, dword [edi + 0x14]
call eax
add esp, 8
cmp eax, 0x7d
jne 0x5c1a79
mov eax, dword [edi]
push esi
call eax
mov edi, dword [ebp - 4]
add esp, 4
add esi, eax
mov eax, dword [ebp + 8]
mov dword [edi], esi
pop edi
mov dword [ebx], 4
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [eax], 0x20000000
je case.0x5c13b4.11
push dword [ebp - 0xc]
mov edx, edi
push 2
lea ecx, [ebp - 0x10]
call fcn.005beed0
add esp, 8
test eax, eax
jns 0x5c1ab4
pop edi
pop esi
mov eax, 0xffffff38
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x10]
xor ecx, ecx
cmp esi, dword [ebp + 0xc]
mov dword [ebx], 1
cmove eax, ecx
mov dword [ebx + 8], 0x10
mov dword [ebx + 0x10], eax
mov edi, dword [ebp - 4]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, edi
jae case.0x5c13b4.11
mov eax, dword [ebp - 8]
mov dword [ebp + 0xc], esi
test dword [eax + 4], 0x4000
je case.0x5c13b4.11
push dword [ebp - 0xc]
mov edx, edi
push 4
lea ecx, [ebp - 0x10]
call fcn.005beed0
add esp, 8
test eax, eax
js 0x5c1aa8
mov esi, dword [ebp - 0x10]
xor ecx, ecx
cmp esi, dword [ebp + 0xc]
mov dword [ebx], 4
cmove eax, ecx
jmp 0x5c1ac5
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0xc]
push esi
mov edx, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.005bee30
mov edx, eax
add esp, 4
cmp edx, 0x3e8
ja 0x5c1ba8
mov eax, dword [ebp - 8]
test dword [eax], 0x10000
je 0x5c1ba8
mov ecx, dword [ebp + 0xc]
cmp edx, dword [ecx + 0x3c]
jle 0x5c1b52
cmp edx, 9
jg 0x5c1ba8
test byte [eax + 8], 0x20
je 0x5c1b79
cmp edx, dword [ecx + 0x3c]
jg 0x5c1b6d
mov eax, dword [ecx + 0x68]
test eax, eax
jne 0x5c1b67
lea eax, [ecx + 0x48]
cmp dword [eax + edx*4], 0
jne 0x5c1b79
pop edi
pop esi
mov eax, 0xffffff30
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx], 7
mov dword [ebx + 0x10], 1
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x38
je 0x5c1c16
cmp ecx, 0x39
je 0x5c1c16
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 8]
test dword [eax], 0x10000000
je 0x5c1c32
push dword [ebp - 0xc]
xor eax, eax
cmp ecx, 0x30
setne al
mov edx, edi
lea ecx, [ebp - 0x10]
mov dword [ebp + 0xc], esi
add eax, 2
push eax
call fcn.005befd0
add esp, 8
test eax, eax
js 0x5c1aa8
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp - 4]
xor ecx, ecx
cmp esi, dword [ebp + 0xc]
mov dword [edi], esi
cmove eax, ecx
pop edi
mov dword [ebx], 1
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
pop esi
mov dword [ebx + 8], 8
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
mov eax, dword [esi]
push edi
call eax
lea esi, [edi + eax]
mov edi, dword [ebp - 4]
mov eax, dword [ebx]
add esp, 4
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x30
je case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push esi
mov eax, dword [eax]
call eax
mov edi, dword [ebp - 4]
add esp, 4
add esi, eax
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x100
je case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
mov dword [ebp - 0x14], esi
call ecx
mov ecx, dword [ebp + 8]
add esi, eax
add esp, 0xc
mov dword [ebp - 0x10], esi
cmp ecx, 0x3c
je 0x5c1ca4
cmp ecx, 0x27
je 0x5c1ca4
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x14]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
lea eax, [ebp + 8]
push eax
push edi
lea edx, [ebp - 0x10]
mov dword [ebp + 8], 0
call fcn.005c0510
add esp, 0x14
cmp eax, 1
jne 0x5c1cd0
mov dword [ebx + 0x20], eax
jmp 0x5c1cdf
mov dword [ebx + 0x20], 0
test eax, eax
js 0x5c21fe
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x5c1d45
mov edx, dword [ebp + 0xc]
jns 0x5c1cf7
inc ecx
add ecx, dword [edx + 0x3c]
test ecx, ecx
jle 0x5c1b6d
mov eax, dword [ebp - 8]
test byte [eax + 8], 0x20
je 0x5c1d1d
cmp ecx, dword [edx + 0x3c]
jg 0x5c1b6d
mov eax, dword [edx + 0x68]
test eax, eax
jne 0x5c1d13
lea eax, [edx + 0x48]
cmp dword [eax + ecx*4], 0
je 0x5c1b6d
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
mov dword [edi], esi
pop edi
mov dword [ebx], 7
mov eax, dword [ebx]
pop esi
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x10], 1
mov dword [ebx + 0x14], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0xc]
mov ecx, dword [edi + 0x30]
push eax
push dword [ebp + 8]
mov edx, esi
call fcn.005be400
add esp, 8
mov dword [ebp + 0xc], eax
test eax, eax
jg 0x5c1d78
mov eax, dword [ebp + 8]
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], eax
pop edi
pop esi
mov eax, 0xffffff27
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0xc]
test byte [eax + 8], 0x20
je 0x5c1db8
xor eax, eax
test esi, esi
jle 0x5c1db8
lea ebx, [ebx]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + eax*4]
cmp edx, dword [edi + 0x3c]
jg 0x5c1b6d
mov ecx, dword [edi + 0x68]
test ecx, ecx
jne 0x5c1da9
lea ecx, [edi + 0x48]
cmp dword [ecx + edx*4], 0
je 0x5c1b6d
inc eax
cmp eax, esi
jl 0x5c1d90
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov dword [ebx], 7
mov dword [ebx + 0x1c], 1
cmp esi, 1
jne 0x5c1de6
mov dword [ebx + 0x10], esi
mov esi, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [edi], esi
pop edi
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x10], esi
mov esi, dword [ebp - 0x10]
mov dword [edi], esi
pop edi
mov dword [ebx + 0x18], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x200
je case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
mov dword [ebp - 0x14], esi
call ecx
add esi, eax
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [ebp - 0x10], esi
cmp eax, 0x3c
je 0x5c1e3b
cmp eax, 0x27
jne 0x5c1c93
push 1
lea ecx, [ebp + 8]
push ecx
push dword [ebp + 0xc]
lea ecx, [ebp + 0xc]
push ecx
push edi
lea edx, [ebp - 0x10]
mov ecx, eax
call fcn.005c07d0
add esp, 0x14
test eax, eax
js 0x5c21fe
mov edi, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x10], esi
mov esi, dword [ebp - 0x10]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 8]
mov dword [edi], esi
pop edi
mov dword [ebx], 8
mov dword [ebx + 0x18], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 4]
test byte [eax + 4], 1
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0x11
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, edi
jae case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
add esp, 8
cmp eax, 0x7b
jne case.0x5c13b4.11
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x10000
je case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push esi
mov eax, dword [eax]
call eax
add esi, eax
xor eax, eax
add esp, 4
cmp dword [ebp - 0x14], 0x50
mov dword [ebx], 0x12
sete al
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 8]
test dword [eax + 4], 0x20000
je case.0x5c13b4.11
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
mov edi, eax
mov eax, dword [ebp - 0xc]
push esi
mov ecx, dword [eax]
mov dword [ebp + 0xc], esi
call ecx
add esp, 0xc
add esi, eax
cmp edi, 0x5e
mov edi, dword [ebp - 4]
jne 0x5c1f3c
xor eax, eax
cmp dword [ebx + 0x14], eax
mov dword [edi], esi
sete al
pop edi
pop esi
mov dword [ebx + 0x14], eax
mov eax, dword [ebx]
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
push dword [ebp + 0xc]
mov edx, edi
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], eax
call fcn.005c0310
add esp, 4
test eax, eax
js 0x5c21fe
cmp dword [ebx + 0x10], eax
je 0x5c1f87
mov edi, dword [ebp - 4]
mov esi, dword [ebp - 0x10]
mov dword [edi], esi
pop edi
mov dword [ebx], 4
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
push dword [ebx + 0xc]
mov eax, dword [eax]
call eax
mov edi, dword [ebp - 4]
add esp, 4
mov esi, eax
add esi, dword [ebx + 0xc]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov dword [ebx], 0xc
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
test dword [ecx], 0x1000
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xe
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [ecx], 2
je case.0x5c13b4.11
mov edi, dword [ebp - 4]
mov dword [ebx], 5
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test byte [ecx], 4
jmp 0x5c1530
test byte [ecx], 0x10
je case.0x5c13b4.11
mov dword [ebx + 0x10], 1
mov dword [ebx], 0xa
mov dword [ebx + 0x14], 0xffffffff
jmp 0x5c15bf
test byte [ecx], 0x40
je case.0x5c13b4.11
mov dword [ebx], 0xa
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 1
jmp 0x5c15bf
test dword [ecx], 0x100
je case.0x5c13b4.11
push dword [ebp + 0xc]
mov edx, edi
push ebx
lea ecx, [ebp - 0x10]
call fcn.005c0110
add esp, 8
test eax, eax
js 0x5c21fe
je 0x5c15bc
cmp eax, 2
jne 0x5c1b97
mov eax, dword [ebp - 8]
test dword [eax + 8], 0x200
je 0x5c15bc
mov esi, dword [ebp - 0x10]
cmp esi, edi
jae 0x5c20ef
mov eax, dword [ebp - 0xc]
push edi
mov eax, dword [eax + 0x14]
push esi
call eax
add esp, 8
cmp eax, 0x2b
jne 0x5c20ef
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
test al, 0x10
je 0x5c20b6
cmp dword [ebx], 0xb
jne 0x5c20bf
test al, 0x20
je 0x5c20ef
cmp dword [ebx], 0xb
jne 0x5c20ef
push edi
mov edi, dword [ebp - 0xc]
push esi
mov eax, dword [edi + 0x14]
call eax
mov eax, dword [edi]
push esi
call eax
mov edi, dword [ebp - 4]
add esp, 0xc
add esi, eax
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x1c], 1
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x1c], 0
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx], 0x400
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xd
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx], 0x1000
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0xf
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx], 0x800000
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov eax, dword [ebp + 0xc]
mov dword [ebx], 9
mov eax, dword [eax]
and al, 8
movzx eax, al
neg eax
sbb eax, eax
mov dword [edi], esi
add eax, 2
pop edi
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx], 0x800000
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov eax, dword [ebp + 0xc]
mov dword [ebx], 9
test byte [eax], 8
mov eax, 0x20
mov ecx, 0x10
mov dword [edi], esi
cmovne eax, ecx
pop edi
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ecx], 0x20000
mov edi, dword [ebp - 4]
je 0x5c1ad2
mov dword [edi], esi
pop edi
mov dword [ebx], 0x10
mov eax, dword [ebx]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi]
cmp eax, dword [ecx + 0x20]
jbe 0x5c1ad2
call fcn.005c0a60
mov eax, dword [ebx]
mov dword [edi], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret