Function at 0x5c4b40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x622276
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x8c
mov eax, dword [ecx]
push edi
xor edi, edi
mov dword [esp + 0x34], ecx
cmp eax, edi
jne 0x5c4b6f
xor eax, eax
jmp 0x5c59c1
push edi
push edi
lea ecx, [esp + 0xc]
call fcn.005c5c40
mov dword [esp + 4], 0x74a18c
mov dword [esp + 0x10], edi
mov dword [esp + 8], edi
mov al, byte [0x89fb94]
mov dword [esp + 0x98], edi
test al, 1
jne 0x5c4be2
or al, 1
mov ecx, 0x89fba0
mov byte [0x89fb94], al
call fcn.005c5ac0
push str.___:____d_.__
lea ecx, [esp + 0x68]
call fcn.005c4370
mov eax, dword [eax + 8]
push edi
push eax
push str.___:____d_.__
mov ecx, 0x89fba0
mov byte [esp + 0xa4], 2
call fcn.005c4440
push 0x5c5bd0
call fcn.005f667b
add esp, 4
push ebp
push esi
lea ecx, [esp + 0x88]
call fcn.005c4990
mov ebp, dword [esp + 0xc4]
mov byte [esp + 0xa0], 3
cmp ebp, edi
jne 0x5c4c0a
lea ebp, [esp + 0x88]
mov ecx, dword [0x89fba0]
mov eax, dword [esp + 0xc8]
mov esi, dword [esp + 0xb4]
cmp ecx, edi
jne 0x5c4c28
mov dword [esp + 0x38], edi
jmp 0x5c4c92
cmp eax, edi
jne 0x5c4c59
push 0x4c
call fcn.006123b5
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, edi
mov byte [esp + 0xa0], 4
je 0x5c4c4f
mov ecx, eax
call fcn.005c5be0
jmp 0x5c4c51
xor eax, eax
mov byte [esp + 0xa0], 3
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x3c], edi
mov dword [eax + 0x38], 0xffffffff
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], esi
mov dword [eax + 0x40], 0x64
test byte [0x89fba4], 0x10
je 0x5c4c88
mov dword [eax + 0x34], esi
mov dword [eax + 0x30], esi
jmp 0x5c4c8e
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], edi
mov dword [esp + 0x38], eax
push ebx
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x7c]
push edx
push eax
mov ecx, 0x89fba0
call fcn.005c6440
mov esi, eax
push edi
mov ecx, ebp
mov byte [esp + 0xa8], 5
call fcn.005c6d10
mov dword [ebp + 8], edi
mov eax, dword [esi + 8]
cmp eax, edi
jle 0x5c4ce1
mov esi, dword [esi + 4]
cmp esi, edi
mov ecx, esi
jne 0x5c4cd7
mov ecx, 0x74a194
push edi
push eax
push ecx
mov ecx, ebp
call fcn.005c6870
push edi
push edi
mov ecx, ebp
call fcn.005c5aa0
lea ecx, [esp + 0x7c]
mov esi, eax
mov byte [esp + 0xa4], 3
call fcn.005ce840
cmp esi, edi
je 0x5c5235
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.005c5aa0
mov esi, eax
sub esi, ebx
cmp esi, edi
jle 0x5c4dac
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c4d52
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c4d35
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c4d98
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c4d7b
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.005c5aa0
mov esi, eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x24], esi
mov ebx, 2
lea edi, [eax + esi*2 + 2]
xor eax, eax
mov ax, word [edi]
add eax, 0xffffffdc
cmp eax, 0x57
ja case.0x5c4de6.39
xor ecx, ecx
mov cl, byte [eax + 0x5c59ec]
jmp dword [ecx*4 + 0x5c59dc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c4e23
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c4e06
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c517a
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c515d
jmp 0x5c5158
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c4e8a
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c4e6d
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
xor esi, esi
mov dword [eax + ecx*4], 0xffffffff
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x18], ecx
mov si, word [edi]
cmp ecx, eax
jl 0x5c520e
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c51f1
jmp 0x5c51ec
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.005c5aa0
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov esi, eax
call fcn.005c5aa0
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov eax, dword [esp + 0xb4]
sub ebx, esi
mov dword [esp + 0x70], 0x74a184
lea edx, [eax + ecx*2 + 4]
lea eax, [ebx - 3]
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
mov edi, dword [esp + 0x40]
xor esi, esi
mov byte [esp + 0xa4], 6
mov eax, dword [edi + 0x4c]
test eax, eax
jle 0x5c4f3f
mov edx, dword [edi + 0x48]
lea ecx, [esp + 0x70]
push ecx
mov eax, dword [edx + esi*4]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx]
add ecx, 0xc
call fcn.005c5c80
test eax, eax
je 0x5c4ff5
mov eax, dword [edi + 0x4c]
inc esi
cmp esi, eax
jl 0x5c4f17
mov esi, 0xfffffffd
test esi, esi
mov byte [esp + 0xa4], 3
mov dword [esp + 0x70], 0x74a184
jle 0x5c5008
cmp esi, dword [edi + 8]
jg 0x5c5008
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c4f9b
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c4f7e
mov edi, 8
mov ecx, dword [esp + 0x14]
lea eax, [edi*4]
push eax
push ecx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c4fe5
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c4fc8
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], esi
jmp 0x5c5219
mov edx, dword [edi + 0x48]
mov eax, dword [edx + esi*4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov esi, dword [edx + 4]
jmp 0x5c4f44
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c503e
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c5021
mov esi, 8
mov eax, dword [esp + 0x14]
lea edx, [esi*4]
push edx
push eax
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c5088
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c506b
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], ebx
jmp 0x5c5219
xor esi, esi
mov ebx, 1
mov ax, word [edi]
cmp ax, 0x30
jb 0x5c50c3
cmp ax, 0x39
ja 0x5c50c3
and eax, 0xffff
lea edx, [esi + esi*4]
inc ebx
add edi, 2
cmp ebx, 3
lea esi, [eax + edx*2 - 0x30]
jle 0x5c509f
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 8]
cmp esi, ecx
jle 0x5c50f1
mov eax, 0x66666667
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
dec ebx
mov esi, edx
cmp esi, ecx
jg 0x5c50ce
test esi, esi
jne 0x5c50f1
mov ebx, 1
jmp 0x5c50fa
cmp ebx, 1
jne 0x5c518e
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c5130
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c5113
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c517a
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c515d
mov esi, 8
mov ecx, dword [esp + 0x14]
lea eax, [esi*4]
push eax
push ecx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], 1
jmp 0x5c5219
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x5c51c4
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c51a7
mov edi, 8
mov edx, dword [esp + 0x14]
lea ecx, [edi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xfffffffe
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x5c520e
lea edi, [eax + eax]
cmp edi, 8
jge 0x5c51f1
mov edi, 8
mov eax, dword [esp + 0x14]
lea edx, [edi*4]
push edx
push eax
call fcn.005f772f
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx + edx*4], esi
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
add eax, ebx
xor edi, edi
mov dword [esp + 0x24], eax
mov ebx, eax
jmp 0x5c4c99
mov ecx, dword [esp + 0xb8]
cmp ebx, ecx
jge 0x5c52e4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edx, eax
jl 0x5c5281
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c525d
mov esi, 8
mov ecx, dword [esp + 0x14]
lea eax, [esi*4]
push eax
push ecx
call fcn.005f772f
mov ecx, dword [esp + 0xc0]
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx + eax*4], ebx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc edx
cmp edx, eax
mov dword [esp + 0x18], edx
jl 0x5c52ce
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c52aa
mov esi, 8
mov edx, dword [esp + 0x14]
lea ecx, [esi*4]
push ecx
push edx
call fcn.005f772f
mov ecx, dword [esp + 0xc0]
add esp, 8
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub ecx, ebx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 4]
and eax, 0x10
mov dword [esp + 0x44], eax
je 0x5c5309
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], 0xfffffffe
add ecx, 0xfffffffe
mov dword [esp + 0x58], ecx
jmp 0x5c5315
mov edx, dword [esp + 0x18]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 0x44]
lea ecx, [esp + 0x2c]
mov eax, ebx
mov esi, ebx
neg eax
sbb eax, eax
and al, 0xfc
add eax, 2
neg esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb0]
sbb esi, esi
and esi, eax
neg ebx
sbb ebx, ebx
xor edi, edi
not ebx
and ebx, eax
push edi
push edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x30], edi
call fcn.005c6cf0
mov dword [esp + 0x2c], 0x74a190
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0xc0]
mov byte [esp + 0xa4], 7
cmp dword [ecx], 0
jne 0x5c5391
mov dword [esp + 0x3c], 0
jmp 0x5c5430
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp ecx, edx
jne 0x5c53ce
push 0x4c
call fcn.006123b5
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
mov byte [esp + 0xa4], 8
je 0x5c53be
mov ecx, eax
call fcn.005c5be0
jmp 0x5c53c0
xor eax, eax
mov ebx, dword [esp + 0x5c]
mov byte [esp + 0xa4], 7
xor edx, edx
mov ecx, dword [esp + 0xac]
cmp edi, edx
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0xb0]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 0xffffffff
mov dword [eax + 0x48], ecx
mov dword [eax + 0x40], 0x64
jge 0x5c5411
mov edi, dword [esp + 0x40]
test byte [edi + 4], 0x10
je 0x5c5409
mov dword [eax + 0x34], ecx
mov dword [eax + 0x30], ecx
jmp 0x5c542c
mov dword [eax + 0x34], edx
mov dword [eax + 0x30], edx
jmp 0x5c542c
cmp edi, ecx
jle 0x5c5426
mov edx, dword [esp + 0x40]
mov edi, dword [edx + 4]
not edi
shr edi, 4
and edi, 1
add edi, ecx
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc4]
mov edi, esi
mov dword [esp + 0x48], 0
test eax, eax
jl 0x5c544f
cmp dword [esp + 0x48], eax
jge 0x5c57b6
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, dword [esp + 0x48]
call fcn.005c6440
mov esi, eax
push 0
mov ecx, ebp
mov byte [esp + 0xa8], 9
call fcn.005c6d10
mov dword [ebp + 8], 0
mov eax, dword [esi + 8]
test eax, eax
jle 0x5c549c
mov esi, dword [esi + 4]
test esi, esi
mov ecx, esi
jne 0x5c5491
mov ecx, 0x74a194
push 0
push eax
push ecx
mov ecx, ebp
call fcn.005c6870
lea ecx, [esp + 0x7c]
mov byte [esp + 0xa4], 7
call fcn.005ce840
push 0
push 0
mov ecx, ebp
call fcn.005c5aa0
test eax, eax
je 0x5c57b6
mov eax, dword [esp + 0x44]
push 0xffffffffffffffff
test eax, eax
je 0x5c5596
push 3
mov ecx, ebp
call fcn.005c5aa0
sub edi, eax
mov ebx, edi
je 0x5c5590
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.005c5aa0
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0x34]
lea edi, [edx + eax*2]
mov eax, dword [esp + 0x38]
cmp ecx, eax
jl 0x5c552c
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c550f
mov esi, 8
mov ecx, dword [esp + 0x30]
lea eax, [esi*4]
push eax
push ecx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [edx + eax*4], edi
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc ecx
cmp ecx, eax
mov dword [esp + 0x34], ecx
jl 0x5c5572
lea esi, [eax + eax]
cmp esi, 8
jge 0x5c5555
mov esi, 8
mov edx, dword [esp + 0x30]
lea ecx, [esi*4]
push ecx
push edx
call fcn.005f772f
add esp, 8
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [eax + ecx*4], ebx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
inc ecx
sub eax, ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
push 0xffffffffffffffff
push 2
jmp 0x5c55cb
push 2
mov ecx, ebp
call fcn.005c5aa0
mov esi, eax
sub esi, edi
je 0x5c55c7
mov edx, dword [esp + 0xac]
lea ecx, [esp + 0x2c]
lea eax, [edx + edi*2]
push eax
call fcn.005c6730
push esi
lea ecx, [esp + 0x30]
call fcn.005c6730
add dword [esp + 0x28], esi
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.005c5aa0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x54]
mov edx, eax
cmp eax, ecx
mov dword [esp + 0x50], edx
je 0x5c5799
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + edx*4]
mov esi, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0xb4]
cmp eax, 0xffffffff
lea edi, [edx + eax*2]
jne 0x5c5722
mov eax, esi
and eax, 0xffff
add eax, 0xffffffda
cmp eax, 0x3a
ja case.0x5c562d.43
xor ecx, ecx
mov cl, byte [eax + 0x5c5a5c]
jmp dword [ecx*4 + 0x5c5a44]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.005c5aa0
mov edx, dword [esp + 0xac]
push 0xffffffffffffffff
push 2
mov ecx, ebp
lea edi, [edx + eax*2]
call fcn.005c5aa0
push 0xffffffffffffffff
push 3
mov ecx, ebp
mov ebx, eax
call fcn.005c5aa0
mov esi, eax
sub esi, ebx
jmp case.0x5c562d.43
mov edi, dword [esp + 0xac]
push 0xffffffffffffffff
push 2
mov ecx, ebp
call fcn.005c5aa0
jmp 0x5c5755
push 0xffffffffffffffff
push 3
mov ecx, ebp
call fcn.005c5aa0
mov ecx, dword [esp + 0xac]
push 0xffffffffffffffff
push 3
lea edi, [ecx + eax*2]
mov ecx, ebp
call fcn.005c5aa0
mov esi, dword [esp + 0xb0]
sub esi, eax
jmp case.0x5c562d.43
push 0
push 1
mov ecx, ebp
call fcn.005c5aa0
mov esi, eax
test esi, esi
jl 0x5c56da
lea edi, [esi + esi + 2]
push 0xffffffffffffffff
push edi
mov ecx, ebp
call fcn.005c5aa0
test eax, eax
jge 0x5c56da
dec esi
sub edi, 2
test esi, esi
jge 0x5c56c4
lea ebx, [esi + esi + 2]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.005c5aa0
mov edx, dword [esp + 0xac]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
lea edi, [edx + eax*2]
call fcn.005c5aa0
mov ebx, eax
lea eax, [esi + esi + 3]
push 0xffffffffffffffff
push eax
mov ecx, ebp
call fcn.005c5aa0
mov esi, eax
sub esi, ebx
jmp case.0x5c562d.43
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xb0]
jmp case.0x5c562d.43
cmp eax, 0xfffffffe
jne case.0x5c562d.43
lea ebx, [esi + esi + 2]
push 0xffffffffffffffff
push ebx
mov ecx, ebp
call fcn.005c5aa0
mov ecx, dword [esp + 0xac]
push 0xffffffffffffffff
push ebx
lea edi, [ecx + eax*2]
mov ecx, ebp
call fcn.005c5aa0
push esi
mov ecx, ebp
mov ebx, eax
call fcn.005c6710
sub eax, ebx
mov esi, eax
push edi
lea ecx, [esp + 0x30]
call fcn.005c6730
push esi
lea ecx, [esp + 0x30]
call fcn.005c6730
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5c5775
neg esi
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x54]
add edx, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x50]
add edx, ecx
cmp edx, eax
mov dword [esp + 0x50], edx
jne 0x5c55f4
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x24]
inc eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc4]
jmp 0x5c5441
mov eax, dword [esp + 0x44]
test eax, eax
je 0x5c57db
cmp ebx, edi
jge 0x5c57ff
mov edx, dword [esp + 0xac]
lea ecx, [esp + 0x2c]
lea eax, [edx + ebx*2]
push eax
call fcn.005c6730
sub edi, ebx
push edi
jmp 0x5c57f6
cmp edi, ebx
jge 0x5c57ff
mov ecx, dword [esp + 0xac]
lea edx, [ecx + edi*2]
lea ecx, [esp + 0x2c]
push edx
call fcn.005c6730
sub ebx, edi
push ebx
lea ecx, [esp + 0x30]
call fcn.005c6730
mov eax, dword [esp + 0xcc]
test eax, eax
jne 0x5c5817
mov eax, dword [esp + 0x3c]
push eax
call fcn.005c66f0
add esp, 4
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0x34]
xor esi, esi
cmp ecx, esi
mov dword [edi], esi
jle 0x5c5842
mov edx, dword [esp + 0x30]
inc ecx
shr ecx, 1
lea eax, [edx + 4]
mov edx, dword [eax]
mov ebx, dword [edi]
add ebx, edx
add eax, 8
dec ecx
mov dword [edi], ebx
jne 0x5c5834
lea ecx, [esp + 0x60]
call fcn.005c6210
mov eax, dword [edi]
push esi
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0xac], 0xa
call fcn.005c62e0
push esi
lea ecx, [esp + 0x64]
call fcn.005c6810
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x68], esi
cmp ebx, esi
je 0x5c58a0
mov ecx, dword [esp + 0x34]
lea esi, [ecx - 2]
test esi, esi
jl 0x5c58cb
mov eax, dword [esp + 0x30]
push 0
lea ecx, [esp + 0x64]
mov edx, dword [eax + esi*4 + 4]
mov eax, dword [eax + esi*4]
push edx
push eax
call fcn.005c6230
sub esi, 2
jns 0x5c5881
jmp 0x5c58cb
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x5c58cb
mov eax, dword [esp + 0x30]
push 0
mov ecx, dword [eax + esi*4 + 4]
mov edx, dword [eax + esi*4]
push ecx
push edx
lea ecx, [esp + 0x6c]
call fcn.005c6230
mov eax, dword [esp + 0x34]
add esi, 2
cmp esi, eax
jl 0x5c58a8
push 0
lea eax, [esp + 0x24]
push 1
push eax
lea ecx, [esp + 0x6c]
mov dword [esp + 0x2c], 0
call fcn.005c6230
mov ecx, dword [edi]
push 3
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ecx
push 1
push edx
mov ecx, ebp
call fcn.005c6870
mov eax, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x24]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x2c], eax
call fcn.005c6870
test ebx, ebx
pop ebx
je 0x5c594b
mov edx, dword [edi]
mov esi, dword [esp + 0x24]
push 0
lea eax, [esp + 0x20]
sub edx, esi
push 1
push eax
mov ecx, ebp
mov dword [esp + 0x28], edx
call fcn.005c6870
mov ecx, dword [edi]
mov esi, dword [esp + 0x48]
sub ecx, esi
push 0
lea edx, [esp + 0x20]
push 1
mov dword [esp + 0x24], ecx
push edx
jmp 0x5c5974
mov eax, dword [esp + 0x48]
push 0
lea ecx, [esp + 0x20]
push 1
push ecx
mov ecx, ebp
mov dword [esp + 0x28], eax
call fcn.005c6870
mov edx, dword [esp + 0x24]
push 0
lea eax, [esp + 0x20]
push 1
mov dword [esp + 0x24], edx
push eax
mov ecx, ebp
call fcn.005c6870
lea ecx, [esp + 0x5c]
call fcn.005c62d0
lea ecx, [esp + 0x5c]
mov esi, eax
mov byte [esp + 0xa0], 7
call fcn.005c6370
lea ecx, [esp + 0x28]
mov byte [esp + 0xa0], 3
call fcn.005c6780
lea ecx, [esp + 0x88]
call fcn.005ce840
lea ecx, [esp + 0xc]
call fcn.005ce840
mov eax, esi
pop esi
pop ebp
mov ecx, dword [esp + 0x90]
pop edi
mov dword fs:[0], ecx
add esp, 0x98
ret 0x24