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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe4
mov eax, dword [0x5c51004]
xor eax, esp
mov dword [esp + 0xe0], eax
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [ebp + 0x10]
push ebx
push esi
test byte [edx + 0x15], 2
mov esi, dword [ebp + 0xc]
push edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x20], ecx
je 0x5c1e2ca
add eax, 4
mov byte [esp + 0x27], 1
mov dword [esp + 0x2c], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x78], eax
jmp 0x5c1e2ce
mov byte [esp + 0x27], cl
movsx eax, byte [esi]
test eax, eax
je case.default.0x5c1e622
nop dword [eax]
cmp eax, 0x25
je 0x5c1e342
mov edi, esi
mov dword [esp + 0x20], edi
nop dword [eax + eax]
mov al, byte [esi + 1]
inc esi
test al, al
je 0x5c1e2fc
cmp al, 0x25
jne 0x5c1e2f0
mov eax, dword [edx + 0x10]
mov ecx, esi
sub ecx, edi
add eax, ecx
cmp eax, dword [edx + 8]
jb 0x5c1e31b
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, edi
call fcn.05c1e010
add esp, 4
jmp 0x5c1e335
test ecx, ecx
je 0x5c1e339
mov eax, dword [edx + 4]
add dword [edx + 0x10], ecx
sub eax, ecx
add eax, dword [edx + 0x10]
push ecx
push edi
push eax
call fcn.05b15590
add esp, 0xc
mov edx, dword [esp + 0x18]
cmp byte [esi], 0
je case.default.0x5c1e622
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x7c], esi
test ecx, ecx
je 0x5c1fe68
or edi, 0xffffffff
mov byte [esp + 0x47], 0
mov byte [esp + 0x28], 0
mov byte [esp + 0x29], 0
mov byte [esp + 0x2a], 0
mov byte [esp + 0x26], 0
mov byte [esp + 0x3b], 0
mov byte [esp + 0x17], 0
mov dword [esp + 0x34], 0
mov byte [esp + 0x2b], 0
mov dword [esp + 0x54], edi
nop word [eax + eax]
lea eax, [ecx - 0x20]
cmp eax, 0x4c
ja case.0x5c1e3a3.34
movzx eax, byte [eax + 0x5c1fef4]
jmp dword [eax*4 + 0x5c1fec4]
mov byte [esp + 0x3b], 1
jmp 0x5c1e58b
mov byte [esp + 0x26], 0x2b
jmp 0x5c1e58b
mov byte [esp + 0x26], 0x20
jmp 0x5c1e58b
mov byte [esp + 0x29], 1
jmp 0x5c1e58b
mov byte [esp + 0x28], 1
jmp 0x5c1e58b
mov byte [esp + 0x47], 1
jmp 0x5c1e58b
mov byte [esp + 0x2a], 0x2c
jmp 0x5c1e58b
inc esi
lea edx, [ecx - 0x30]
mov dword [esp + 0x7c], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jl 0x5c1e41b
cmp ecx, 0x39
jg 0x5c1e417
lea edx, [edx + edx*4]
inc esi
lea edx, [edx - 0x18]
lea edx, [ecx + edx*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x5c1e400
mov dword [esp + 0x7c], esi
and edx, 0x7fffffff
mov dword [esp + 0x34], edx
cmp ecx, 0x2e
je 0x5c1e58a
jmp 0x5c1e585
cmp byte [esp + 0x27], 0
je 0x5c1e475
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 4]
cmp dword [eax], edx
jg 0x5c1e454
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x60]
jmp 0x5c1e483
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov edx, dword [esp + 0x78]
mov dword [edx + 4], eax
call fcn.05bfb760
mov dword [esp + 0x64], edx
mov edx, eax
mov dword [esp + 0x34], eax
jmp 0x5c1e487
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov edx, dword [eax - 4]
mov dword [esp + 0x34], edx
test edx, edx
jns 0x5c1e4a8
mov byte [esp + 0x3b], 1
cmp edx, 0x80000001
jl 0x5c1e4a0
neg edx
mov dword [esp + 0x34], edx
jmp 0x5c1e4a8
mov dword [esp + 0x34], 0
movsx ecx, byte [esi + 1]
lea eax, [esi + 1]
cmp ecx, 0x2e
je 0x5c1e4bd
cmp ecx, 0x6c
jne 0x5c1e59e
cmp byte [esp + 0x17], 0
jne case.0x5c1e3a3.34
jmp 0x5c1e58b
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x7c], esi
cmp ecx, 0x2a
jne 0x5c1e556
cmp byte [esp + 0x27], 0
je 0x5c1e515
mov edi, dword [esp + 0x78]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jg 0x5c1e4fc
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edi, dword [esp + 0x60]
jmp 0x5c1e523
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [edi + 4], eax
call fcn.05bfb760
mov edi, eax
mov dword [esp + 0x64], edx
jmp 0x5c1e523
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov edi, dword [eax - 4]
mov dword [esp + 0x54], edi
test edi, edi
jns 0x5c1e54b
cmp edi, 0x80000001
jl 0x5c1e544
movsx ecx, byte [esi + 1]
neg edi
inc esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x7c], esi
jmp 0x5c1e585
or edi, 0xffffffff
mov dword [esp + 0x54], edi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x7c], esi
jmp 0x5c1e585
xor edi, edi
cmp ecx, 0x30
jl 0x5c1e57b
nop dword [eax]
cmp ecx, 0x39
jg 0x5c1e577
lea edi, [edi + edi*4]
inc esi
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x5c1e560
mov dword [esp + 0x7c], esi
and edi, 0x7fffffff
mov dword [esp + 0x54], edi
cmp ecx, 0x6c
jne case.0x5c1e3a3.34
dec esi
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x7c], esi
test ecx, ecx
jne 0x5c1e390
jmp case.0x5c1e3a3.34
movsx ecx, byte [eax]
mov dword [esp + 0x7c], eax
jmp case.0x5c1e3a3.34
movsx ecx, byte [esi + 1]
inc esi
mov byte [esp + 0x2b], 1
mov dword [esp + 0x7c], esi
cmp ecx, 0x6c
jne case.0x5c1e3a3.34
movsx ecx, byte [esi + 1]
inc esi
mov dword [esp + 0x7c], esi
mov byte [esp + 0x2b], 2
mov dword [esp + 0x50], 0x5c4c2d0
xor esi, esi
mov byte [esp + 0x17], 0x11
mov edx, 0x5c4c2d0
nop dword [eax]
movsx eax, byte [edx]
cmp ecx, eax
je 0x5c1e5fd
add edx, 6
inc esi
cmp edx, 0x5c4c35a
jl 0x5c1e5e0
mov ecx, dword [esp + 0x50]
mov dl, byte [esp + 0x17]
jmp 0x5c1e616
lea eax, [esi + esi*2]
mov dl, byte [eax*2 + 0x5c4c2d3]
lea ecx, [eax*2 + 0x5c4c2d0]
mov dword [esp + 0x50], ecx
mov byte [esp + 0x17], dl
movzx eax, dl
cmp eax, 0x10
ja case.default.0x5c1e622
jmp dword [eax*4 + 0x5c1ff44]
mov al, 1
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], 0
test byte [ecx + 2], 1
je 0x5c1e6cc
cmp byte [esp + 0x27], 0
je 0x5c1e681
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x5c1e66e
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov cl, byte [esp + 0x26]
mov dword [esp + 0x30], edx
jmp 0x5c1e741
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
call fcn.05bfb760
jmp 0x5c1e6ae
mov al, byte [esp + 0x2b]
test al, al
je 0x5c1e69f
cmp al, 2
mov eax, dword [esp + 0x2c]
jne 0x5c1e6a3
mov esi, dword [eax]
add eax, 8
mov dword [esp + 0x2c], eax
mov edx, dword [eax - 4]
jmp 0x5c1e6b0
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, dword [eax - 4]
cdq
mov esi, eax
test edx, edx
jg 0x5c1e661
jl 0x5c1e6ba
test esi, esi
jae 0x5c1e661
not esi
not edx
add esi, 1
mov cl, 0x2d
adc edx, 0
mov dword [esp + 0x30], edx
jmp 0x5c1e73d
cmp byte [esp + 0x27], 0
je 0x5c1e70e
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x5c1e6f5
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x30], edx
jmp 0x5c1e73b
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
call fcn.05bfb760
mov esi, eax
mov dword [esp + 0x30], edx
jmp 0x5c1e73b
mov al, byte [esp + 0x2b]
test al, al
je 0x5c1e728
cmp al, 2
mov eax, dword [esp + 0x2c]
jne 0x5c1e72c
mov esi, dword [eax]
add eax, 8
mov edx, dword [eax - 4]
jmp 0x5c1e733
mov eax, dword [esp + 0x2c]
mov esi, dword [eax]
add eax, 4
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
xor cl, cl
mov byte [esp + 0x26], cl
mov eax, esi
or eax, edx
jne 0x5c1e74b
mov byte [esp + 0x29], al
cmp byte [esp + 0x47], 0
je 0x5c1e768
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x34]
setne al
sub ecx, eax
cmp edi, ecx
cmovl edi, ecx
mov dword [esp + 0x54], edi
cmp edi, 0x25
jge 0x5c1e783
mov eax, 0x46
lea ecx, [esp + 0xa0]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], ecx
jmp 0x5c1e7dd
mov eax, edi
cdq
add eax, 0xa
mov ecx, edx
mov dword [esp + 0x40], eax
adc ecx, 0
cmp byte [esp + 0x2a], 0
je 0x5c1e7b2
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
adc ecx, edx
push ecx
mov ecx, dword [esp + 0x1c]
push eax
call fcn.05c1ff90
add esp, 8
mov dword [esp + 0x8c], eax
mov ecx, eax
mov dword [esp + 0x3c], ecx
test eax, eax
je case.default.0x5c1e622
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
dec eax
add eax, ecx
cmp byte [esp + 0x17], 0xf
mov dword [esp + 0x20], eax
jne 0x5c1e849
push 0
push 0xa
push edx
push esi
call fcn.05c246a0
mov dword [esp + 0x4c], eax
lea ecx, [eax + eax*4]
mov eax, esi
add ecx, ecx
sub eax, ecx
mov dword [esp + 0x58], eax
cmp eax, 4
jge 0x5c1e823
push 0
push 0xa
push edx
push dword [esp + 0x58]
call fcn.05c24710
cmp eax, 1
jne 0x5c1e827
test edx, edx
jne 0x5c1e827
xor edx, edx
jmp 0x5c1e82b
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x20]
mov al, byte [edx*2 + 0x5c4ce01]
mov byte [ecx - 1], al
sub ecx, 2
mov al, byte [edx*2 + str.thstndrd]
mov dword [esp + 0x20], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x20]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x80], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], eax
push ebx
push eax
push ecx
push edx
push esi
dec edi
call fcn.05b150a0
mov dword [esp + 0x68], ebx
pop ebx
mov esi, eax
mov eax, dword [esp + 0x80]
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x4c]
mov byte [edi], al
mov eax, dword [esp + 0x58]
test edx, edx
ja 0x5c1e876
jb 0x5c1e8a6
test esi, esi
jne 0x5c1e876
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov eax, esi
sub eax, edi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x54]
lea ecx, [edx - 1]
add ecx, eax
cmp edi, ecx
jle 0x5c1e8dd
mov eax, dword [esp + 0x20]
sub edi, ecx
add ecx, edi
nop dword [eax + eax]
dec eax
mov byte [eax], 0x30
sub edi, 1
jne 0x5c1e8d0
mov dword [esp + 0x20], eax
cmp byte [esp + 0x2a], 0
mov edi, dword [esp + 0x20]
je 0x5c1e92b
lea eax, [ecx - 1]
mov ecx, 3
cdq
idiv ecx
xor ecx, ecx
mov esi, eax
inc edx
sub edi, esi
mov dword [esp + 0x20], edi
test esi, esi
jle 0x5c1e923
lea eax, [esi + ecx]
mov al, byte [eax + edi]
mov byte [ecx + edi], al
sub edx, 1
jne 0x5c1e91e
mov al, byte [esp + 0x2a]
inc ecx
dec esi
mov edx, 3
mov byte [ecx + edi], al
inc ecx
test esi, esi
jg 0x5c1e902
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov cl, byte [esp + 0x26]
test cl, cl
je 0x5c1e93a
dec edi
mov dword [esp + 0x20], edi
mov byte [edi], cl
cmp byte [esp + 0x29], 0
je 0x5c1e970
mov eax, dword [esp + 0x50]
mov al, byte [eax + 5]
test al, al
je 0x5c1e970
movzx eax, al
add eax, 0x5c43fac
mov cl, byte [eax]
test cl, cl
je 0x5c1e970
nop word [eax + eax]
dec edi
lea eax, [eax + 1]
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x5c1e960
mov dword [esp + 0x20], edi
sub esi, edi
dec edx
add edx, esi
mov dword [esp + 0x1c], edx
jmp 0x5c1fc47
cmp byte [esp + 0x27], 0
je 0x5c1e9f8
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jle 0x5c1e9e9
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
movzx eax, word [ecx + 0x10]
test al, 8
je 0x5c1e9b4
movsd xmm1, qword [ecx]
mov dl, byte [esp + 0x17]
movsd qword [esp + 0x60], xmm1
jmp 0x5c1ea0e
test al, 0x24
je 0x5c1e9d1
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.05c24ae0
mov dl, byte [esp + 0x17]
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm1
jmp 0x5c1ea0e
test al, 0x12
je 0x5c1e9e9
call fcn.05bfb720
mov dl, byte [esp + 0x17]
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm0
jmp 0x5c1ea0e
mov dl, byte [esp + 0x17]
xorps xmm1, xmm1
movsd qword [esp + 0x60], xmm1
jmp 0x5c1ea0e
mov eax, dword [esp + 0x2c]
add eax, 8
mov dword [esp + 0x2c], eax
movsd xmm1, qword [eax - 8]
movsd qword [esp + 0x60], xmm1
test edi, edi
jns 0x5c1ea19
mov edi, 6
jmp 0x5c1ea27
cmp edi, 0x5f5e100
mov eax, 0x5f5e100
cmovg edi, eax
xorps xmm2, xmm2
mov dword [esp + 0x54], edi
comisd xmm2, xmm1
jbe 0x5c1ea46
xorps xmm1, xmmword [0x5c4d730]
movsd qword [esp + 0x60], xmm1
mov byte [esp + 0x26], 0x2d
xor esi, esi
mov dword [esp + 0x48], esi
cmp dl, 3
jne 0x5c1ea5a
test edi, edi
jle 0x5c1ea5a
dec edi
mov dword [esp + 0x54], edi
movsd xmm0, qword [0x5c4d5f8]
comisd xmm0, xmm1
jbe 0x5c1eb95
movaps xmm0, xmm1
call fcn.05c24980
mov ecx, edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x94], ecx
mov ecx, eax
mov dword [esp + 0x90], eax
call fcn.05c24aa0
movsd xmm1, qword [esp + 0x60]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x5c1eb92
xor ecx, ecx
mov eax, 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x9c], ecx
cmp dword [esp + 0x40], ecx
jb 0x5c1eb34
ja 0x5c1ead9
cmp dword [esp + 0x80], 0xa
jb 0x5c1eb34
mov edx, 0xa
xor esi, esi
inc dword [esp + 0x48]
mov eax, esi
mov dword [esp + 0x30], eax
mov ecx, esi
mov dword [esp + 0x9c], eax
mov edi, edx
mov eax, edx
mov dword [esp + 0x3c], edi
shld ecx, eax, 2
mov dword [esp + 0x98], edi
shl eax, 2
add edx, eax
adc esi, ecx
shld esi, edx, 1
add edx, edx
cmp esi, dword [esp + 0x40]
jb 0x5c1eae0
ja 0x5c1eb24
cmp edx, dword [esp + 0x80]
jbe 0x5c1eae0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
cmp esi, edi
jle 0x5c1ee7a
cmp byte [esp + 0x17], 1
je 0x5c1ee7a
mov edx, ecx
mov esi, edi
shrd eax, edx, 1
shr edx, 1
test edi, edi
jle 0x5c1eb65
push 0
push 0xa
push edx
push eax
dec esi
call fcn.05c246a0
test esi, esi
jg 0x5c1eb55
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
add esi, eax
mov dword [esp + 0x80], esi
adc ecx, edx
mov dword [esp + 0x90], esi
mov dword [esp + 0x40], ecx
mov dword [esp + 0x94], ecx
jmp 0x5c1ee7a
xorps xmm2, xmm2
mov esi, edi
mov eax, 0xcccccccd
and esi, 0xfff
xorps xmm0, xmm0
mul esi
movlpd qword [esp + 0x98], xmm0
movlpd qword [esp + 0x90], xmm0
mov eax, esi
shr edx, 3
lea ecx, [edx + edx*4]
add ecx, ecx
sub eax, ecx
movsd xmm3, qword [eax*8 + 0x5c4d370]
cmp esi, 0xa
jb 0x5c1ebe9
movsd xmm0, qword [0x5c4d440]
nop dword [eax + eax]
mulsd xmm3, xmm0
sub edx, 1
jne 0x5c1ebe0
mov dl, byte [esp + 0x17]
cmp dl, 1
jne 0x5c1ec46
movsd qword [esp + 0x60], xmm1
mov eax, 0x55555556
mov ecx, dword [esp + 0x64]
shr ecx, 0x14
and ecx, 0x7ff
sub ecx, 0x3ff
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
cmp eax, 0xf
jge 0x5c1ec32
movaps xmm0, xmm1
mulsd xmm0, qword [0x5c4d438]
addsd xmm0, xmm3
movaps xmm3, xmm0
mov dl, byte [esp + 0x17]
movaps xmm0, xmm3
addsd xmm0, xmm1
movaps xmm1, xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm1
mov ecx, dword [esp + 0x5c]
mov eax, ecx
and eax, 0x7ff00000
xor esi, esi
jne 0x5c1ec9a
cmp eax, 0x7ff00000
jne 0x5c1ec9a
mov eax, dword [esp + 0x58]
and ecx, 0xfffff
or eax, ecx
je 0x5c1ec9a
mov al, byte [esp + 0x47]
mov edi, 0x5c37dac
test al, al
mov ecx, str.null
cmovne edi, ecx
xor edx, edx
test al, al
mov dword [esp + 0x20], edi
setne dl
add edx, 3
mov dword [esp + 0x1c], edx
jmp 0x5c1fc47
comisd xmm1, xmm2
jbe 0x5c1ee4b
movsd xmm4, qword [0x5c4d620]
comisd xmm1, xmm4
mov eax, dword [esp + 0x48]
movsd xmm5, qword [0x5c4d498]
movaps xmm2, xmm5
jb 0x5c1ece0
cmp eax, 0x15e
jg 0x5c1ecdc
mulsd xmm2, xmm4
add eax, 0x64
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x5c1ecc1
mov dword [esp + 0x48], eax
movsd xmm4, qword [0x5c4d5d0]
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x5c1ed10
cmp eax, 0x15e
jg 0x5c1ed0c
movaps xmm2, xmm0
add eax, 0xa
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x5c1ecf5
mov dword [esp + 0x48], eax
movsd xmm4, qword [0x5c4d4f0]
movaps xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x5c1ed3e
cmp eax, 0x15e
jg 0x5c1ed3a
movaps xmm2, xmm0
inc eax
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x5c1ed25
mov dword [esp + 0x48], eax
divsd xmm1, xmm2
movsd xmm0, qword [0x5c4d448]
comisd xmm0, xmm1
movsd qword [esp + 0x60], xmm1
jbe 0x5c1ed77
movsd xmm2, qword [0x5c4d5b0]
nop
mulsd xmm1, xmm2
sub eax, 8
comisd xmm0, xmm1
ja 0x5c1ed60
mov dword [esp + 0x48], eax
movsd qword [esp + 0x60], xmm1
comisd xmm5, xmm1
jbe 0x5c1ed95
nop dword [eax]
mulsd xmm1, xmm4
dec eax
comisd xmm5, xmm1
ja 0x5c1ed80
mov dword [esp + 0x48], eax
movsd qword [esp + 0x60], xmm1
cmp eax, 0x15e
jle 0x5c1edba
cmp byte [esp + 0x47], 0
je 0x5c1ee17
movsd xmm1, qword [0x5c4d4e8]
mov eax, 0x3e7
movsd qword [esp + 0x60], xmm1
mov dword [esp + 0x48], eax
cmp dl, 1
je 0x5c1ee4b
addsd xmm1, xmm3
comisd xmm1, xmm4
movsd qword [esp + 0x60], xmm1
jb 0x5c1ee4b
mulsd xmm1, qword [0x5c4d470]
inc eax
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x98]
movsd qword [esp + 0x60], xmm1
mov dword [esp + 0x48], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], ecx
jmp 0x5c1ee7e
mov cl, byte [esp + 0x26]
lea edi, [esp + 0xa0]
xor eax, eax
mov byte [esp + 0xa0], cl
test cl, cl
mov dword [esp + 0x20], edi
setne al
lea edx, [eax + 3]
mov dword [esp + eax + 0xa0], 0x666e49
mov dword [esp + 0x1c], edx
jmp 0x5c1fc47
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov cl, byte [esp + 0x17]
cmp cl, 3
jne 0x5c1efa9
cmp byte [esp + 0x29], 0
sete byte [esp + 0x2b]
cmp eax, 0xfffffffc
jl 0x5c1ef95
cmp eax, edi
jg 0x5c1ef95
mov dl, byte [esp + 0x28]
sub edi, eax
mov dword [esp + 0x54], edi
mov byte [esp + 0x17], 1
mov ecx, eax
mov dword [esp + 0x4c], eax
movzx eax, dl
lea esi, [esp + 0xa0]
lea eax, [eax + eax*4]
lea eax, [eax*2 + 0x10]
mov dword [esp + 0x58], eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
cdq
mov dword [esp + 0x20], eax
mov eax, edi
mov dword [esp + 0x1c], edx
cdq
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
adc dword [esp + 0x1c], edx
cdq
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x1c], edx
add eax, 0xf
mov edx, dword [esp + 0x1c]
adc edx, 0
mov dword [esp + 0x20], eax
cmp byte [esp + 0x2a], 0
mov dword [esp + 0x1c], edx
je 0x5c1ef3e
test ecx, ecx
jle 0x5c1ef3e
add ecx, 2
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
test edx, edx
jl 0x5c1ef68
jg 0x5c1ef49
cmp eax, 0x46
jbe 0x5c1ef68
mov ecx, dword [esp + 0x18]
push edx
push eax
call fcn.05c1ff90
add esp, 8
mov dword [esp + 0x8c], eax
mov esi, eax
test eax, eax
je case.default.0x5c1e622
test edi, edi
mov dword [esp + 0x20], esi
setg al
or al, byte [esp + 0x28]
or byte [esp + 0x29], al
mov al, byte [esp + 0x26]
test al, al
je 0x5c1ef84
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x4c]
test eax, eax
jns 0x5c1efc5
mov byte [esi], 0x30
inc esi
jmp 0x5c1f0c8
mov dl, byte [esp + 0x28]
xor ecx, ecx
mov byte [esp + 0x17], 2
mov dword [esp + 0x4c], ecx
jmp 0x5c1eebb
mov dl, byte [esp + 0x28]
mov byte [esp + 0x2b], dl
cmp cl, 2
jne 0x5c1eeb5
xor ecx, ecx
mov dword [esp + 0x4c], ecx
jmp 0x5c1eebb
cmp dword [esp + 0x30], 0
ja 0x5c1f046
cmp dword [esp + 0x3c], 0
ja 0x5c1f046
movsd xmm1, qword [esp + 0x60]
mov edi, dword [esp + 0x4c]
nop dword [eax]
mov eax, dword [esp + 0x58]
test eax, eax
jg 0x5c1efec
mov al, 0x30
jmp 0x5c1f00b
dec eax
mov dword [esp + 0x58], eax
cvttsd2si eax, xmm1
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x5c4d4f0]
mov byte [esi], al
inc esi
cmp byte [esp + 0x2a], 0
je 0x5c1f030
mov eax, 0xaaaaaaab
mov ecx, edi
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x5c1f030
cmp edi, 1
jle 0x5c1f030
mov byte [esi], 0x2c
inc esi
sub edi, 1
jns 0x5c1efe0
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
jmp 0x5c1f0ce
mov edi, dword [esp + 0x4c]
nop word [eax + eax]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x90]
call fcn.05c20170
mov byte [esi], al
inc esi
cmp byte [esp + 0x2a], 0
je 0x5c1f088
mov eax, 0xaaaaaaab
mov ecx, edi
mul edi
shr edx, 1
lea eax, [edx + edx*2]
sub ecx, eax
jne 0x5c1f088
cmp edi, 1
jle 0x5c1f088
mov byte [esi], 0x2c
inc esi
sub edi, 1
jns 0x5c1f050
mov eax, dword [esp + 0x94]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
movsd xmm1, qword [esp + 0x60]
cmp byte [esp + 0x29], 0
mov edx, esi
mov dword [esp + 0x1c], esi
je 0x5c1f0e3
mov byte [edx], 0x2e
inc edx
mov dword [esp + 0x1c], edx
lea esi, [eax + 1]
mov ecx, esi
neg ecx
test esi, esi
jns 0x5c1f1aa
cmp ecx, 8
jb 0x5c1f17d
and ecx, 0x80000007
jns 0x5c1f108
dec ecx
or ecx, 0xfffffff8
inc ecx
movaps xmm0, xmmword [0x5c4d6f0]
xorps xmm2, xmm2
movaps xmm4, xmmword [0x5c4d690]
neg ecx
movaps xmmword [esp + 0x60], xmm0
movaps xmm3, xmm2
mov eax, dword [esp + 0x60]
nop word [eax + eax]
movd xmm0, eax
add esi, 8
movd dword [edx], xmm0
psubd xmm2, xmm4
movd xmm0, eax
psubd xmm3, xmm4
movd dword [edx + 4], xmm0
add edx, 8
cmp esi, ecx
jl 0x5c1f130
paddd xmm2, xmm3
mov dword [esp + 0x1c], edx
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd eax, xmm2
add edi, eax
mov dword [esp + 0x54], edi
test esi, esi
jns 0x5c1f1aa
neg esi
mov edi, edx
mov ecx, esi
mov eax, 0x30303030
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [esp + 0x1c]
and ecx, 3
add edx, esi
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x54]
mov dword [esp + 0x1c], edx
sub edi, esi
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x3c]
test ecx, ecx
jne 0x5c1f1f7
test esi, esi
jne 0x5c1f1f7
test edi, edi
jle 0x5c1f265
mov eax, dword [esp + 0x58]
dec edi
test eax, eax
jg 0x5c1f1cf
mov al, 0x30
jmp 0x5c1f1ee
dec eax
mov dword [esp + 0x58], eax
cvttsd2si eax, xmm1
movd xmm0, eax
add al, 0x30
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [0x5c4d4f0]
mov byte [edx], al
inc edx
test edi, edi
jg 0x5c1f1c2
jmp 0x5c1f265
test edi, edi
jle 0x5c1f265
nop dword [eax + eax]
push ecx
push esi
push dword [esp + 0x48]
dec edi
push dword [esp + 0x8c]
call fcn.05c246a0
push dword [esp + 0x30]
mov dword [esp + 0x5c], eax
push esi
push edx
push eax
call fcn.05b15310
sub dword [esp + 0x80], eax
mov ecx, dword [esp + 0x30]
sbb dword [esp + 0x40], edx
test ecx, ecx
jne 0x5c1f23b
cmp esi, 0xa
jb 0x5c1f24e
push 0
push 0xa
push ecx
push esi
call fcn.05c246a0
mov ecx, edx
mov esi, eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x58]
and al, 0xf
add al, 0x30
mov byte [edx], al
inc edx
mov dword [esp + 0x1c], edx
test edi, edi
jg 0x5c1f200
cmp byte [esp + 0x2b], 0
je 0x5c1f2a4
cmp byte [esp + 0x29], 0
je 0x5c1f2a4
cmp byte [edx - 1], 0x30
lea eax, [edx - 1]
jne 0x5c1f28d
nop dword [eax]
mov edx, eax
lea eax, [edx - 1]
mov byte [edx], 0
cmp byte [eax], 0x30
je 0x5c1f280
cmp byte [edx - 1], 0x2e
jne 0x5c1f2a4
cmp byte [esp + 0x28], 0
je 0x5c1f2a0
mov byte [edx], 0x30
inc edx
jmp 0x5c1f2a4
dec edx
mov byte [edx], 0
cmp byte [esp + 0x17], 2
jne 0x5c1f33e
mov eax, dword [esp + 0x50]
lea esi, [edx + 1]
mov ecx, dword [esp + 0x48]
movzx eax, byte [eax + 4]
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [edx], al
test ecx, ecx
jns 0x5c1f2d5
neg ecx
mov byte [esi], 0x2d
mov dword [esp + 0x48], ecx
jmp 0x5c1f2d8
mov byte [esi], 0x2b
inc esi
mov dword [esp + 0x1c], esi
cmp ecx, 0x64
jl 0x5c1f30b
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
add al, 0x30
mov byte [esi], al
inc esi
imul eax, ecx, 0xffffff9c
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
add ecx, eax
mov dword [esp + 0x48], ecx
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x1c]
mov al, cl
add al, 0x30
mov byte [edx], al
mov al, cl
shl cl, 2
add al, cl
mov ecx, dword [esp + 0x48]
add al, al
sub cl, al
add cl, 0x30
mov byte [edx + 1], cl
add edx, 2
mov edi, dword [esp + 0x20]
mov byte [edx], 0
sub edx, edi
cmp byte [esp + 0x47], 0
mov dword [esp + 0x1c], edx
je 0x5c1fc47
cmp byte [esp + 0x3b], 0
jne 0x5c1fc47
mov ecx, dword [esp + 0x34]
cmp edx, ecx
jge 0x5c1fc47
mov esi, ecx
sub esi, edx
cmp ecx, esi
jl 0x5c1f38b
mov edx, edi
sub edx, esi
nop dword [eax]
mov al, byte [edx + ecx]
mov byte [ecx + edi], al
dec ecx
cmp ecx, esi
jge 0x5c1f380
mov cl, byte [esp + 0x26]
xor eax, eax
test cl, cl
setne al
test esi, esi
je 0x5c1f3b5
add edi, eax
mov ecx, esi
mov edx, ecx
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x1c], edx
jmp 0x5c1fc47
cmp byte [esp + 0x27], 0
jne 0x5c1fc39
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
jmp 0x5c1fc39
lea edi, [esp + 0xa0]
mov byte [esp + 0xa0], 0x25
mov edx, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], edx
jmp 0x5c1fc47
cmp byte [esp + 0x27], 0
je 0x5c1f475
mov ecx, dword [esp + 0x78]
call fcn.05c20040
mov edx, eax
mov esi, 1
mov dword [esp + 0x1c], esi
test edx, edx
je 0x5c1f468
movsx ecx, byte [edx]
inc edx
mov byte [esp + 0xa0], cl
and ecx, 0xc0
cmp cl, 0xc0
jne 0x5c1f546
mov cl, byte [edx]
mov al, cl
and al, 0xc0
cmp al, 0x80
jne 0x5c1f546
mov byte [esp + esi + 0xa0], cl
inc edx
inc esi
mov dword [esp + 0x1c], esi
cmp esi, 4
jl 0x5c1f443
jmp 0x5c1f546
mov byte [esp + 0xa0], 0
jmp 0x5c1f546
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov ecx, dword [eax - 4]
cmp ecx, 0x80
jae 0x5c1f49c
mov byte [esp + 0xa0], cl
mov esi, 1
jmp 0x5c1f542
mov eax, ecx
cmp ecx, 0x800
jae 0x5c1f4c8
shr eax, 6
and cl, 0x3f
and al, 0x1f
mov esi, 2
sub al, 0x40
add cl, 0x80
mov byte [esp + 0xa0], al
mov byte [esp + 0xa1], cl
jmp 0x5c1f542
cmp ecx, 0x10000
jae 0x5c1f502
shr eax, 0xc
mov esi, 3
and al, 0xf
sub al, 0x20
mov byte [esp + 0xa0], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
add al, 0x80
add cl, 0x80
mov byte [esp + 0xa1], al
mov byte [esp + 0xa2], cl
jmp 0x5c1f542
shr eax, 0x12
mov esi, 4
and al, 7
sub al, 0x10
mov byte [esp + 0xa0], al
mov eax, ecx
shr eax, 0xc
and al, 0x3f
add al, 0x80
mov byte [esp + 0xa1], al
mov eax, ecx
shr eax, 6
and cl, 0x3f
and al, 0x3f
add al, 0x80
add cl, 0x80
mov byte [esp + 0xa2], al
mov byte [esp + 0xa3], cl
mov dword [esp + 0x1c], esi
cmp edi, 1
jle 0x5c1f6c7
mov edx, dword [esp + 0x34]
sub edx, edi
mov dword [esp + 0x50], 1
mov eax, edx
mov dword [esp + 0x58], 0
inc edx
mov dword [esp + 0x34], edx
cmp edx, 1
jle 0x5c1f58f
cmp byte [esp + 0x3b], 0
jne 0x5c1f58f
push 0x20
push eax
push dword [esp + 0x20]
call fcn.05c1e050
add esp, 0xc
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
add eax, esi
cmp eax, dword [ecx + 8]
jb 0x5c1f5af
push esi
lea edx, [esp + 0xa4]
call fcn.05c1e010
add esp, 4
jmp 0x5c1f5d0
test esi, esi
je 0x5c1f5d0
add dword [ecx + 0x10], esi
lea eax, [esp + 0xa0]
push esi
push eax
mov eax, dword [ecx + 4]
sub eax, esi
add eax, dword [ecx + 0x10]
push eax
call fcn.05b15590
add esp, 0xc
dec edi
cmp edi, 1
jle 0x5c1f6c7
mov ecx, dword [esp + 0x58]
mov eax, esi
cdq
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], edx
nop dword [eax]
lea eax, [edi - 1]
cdq
mov esi, eax
cmp ecx, edx
jl 0x5c1f612
jg 0x5c1f604
mov eax, dword [esp + 0x50]
cmp eax, esi
jbe 0x5c1f616
mov eax, esi
mov ecx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], ecx
jmp 0x5c1f616
mov eax, dword [esp + 0x50]
push ecx
push eax
push dword [esp + 0x44]
push dword [esp + 0x58]
call fcn.05b15310
mov esi, eax
xor ecx, ecx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
add eax, esi
adc ecx, edx
js 0x5c1f64f
jg 0x5c1f641
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 8]
jb 0x5c1f64f
mov ecx, dword [esp + 0x18]
push edx
push esi
call fcn.05c1e0b0
add esp, 8
mov edx, dword [esp + 0x18]
cmp byte [edx + 0x14], 0
jne 0x5c1f6c7
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 4]
mov ecx, edx
mov dword [esp + 0x30], edx
sub ecx, esi
mov edx, dword [esp + 0x18]
add ecx, eax
add eax, esi
cmp eax, dword [edx + 8]
mov edx, dword [esp + 0x30]
jb 0x5c1f689
mov edx, ecx
mov ecx, dword [esp + 0x18]
push esi
call fcn.05c1e010
add esp, 4
jmp 0x5c1f6a6
test esi, esi
je 0x5c1f6a6
mov eax, dword [esp + 0x18]
push esi
push ecx
add dword [eax + 0x10], esi
mov eax, dword [eax + 0x10]
sub eax, esi
add eax, edx
push eax
call fcn.05b15590
add esp, 0xc
mov eax, dword [esp + 0x50]
sub edi, eax
mov ecx, dword [esp + 0x58]
shld ecx, eax, 1
add eax, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], eax
cmp edi, 1
jg 0x5c1f5f0
lea edi, [esp + 0xa0]
mov dword [esp + 0x20], edi
jmp 0x5c1fa9c
cmp byte [esp + 0x27], 0
je 0x5c1f6eb
mov ecx, dword [esp + 0x78]
call fcn.05c20040
mov dl, 5
jmp 0x5c1f6f9
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x5c1f70c
mov eax, 0x5c37db0
mov dword [esp + 0x20], eax
jmp 0x5c1f77a
cmp dl, 6
jne 0x5c1f77a
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x10], 0
jne 0x5c1f773
cmp dword [esi + 0xc], 0
je 0x5c1f773
cmp dword [esp + 0x34], 0
jne 0x5c1f773
test edi, edi
jns 0x5c1f773
cmp byte [esi + 0x14], 0
jne 0x5c1f773
mov edi, dword [esp + 0x20]
mov edx, edi
mov ecx, dword [esi]
mov dword [esi + 4], edi
call fcn.05c20c50
mov ecx, edi
mov dword [esi + 8], eax
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5c1f750
sub ecx, edx
and ecx, 0x7fffffff
mov dword [esi + 0x10], ecx
mov ecx, esi
or byte [ecx + 0x15], 4
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x5c1fc4b
mov dword [esp + 0x8c], eax
test edi, edi
js 0x5c1f7e8
cmp byte [esp + 0x28], 0
je 0x5c1f7c1
mov edx, eax
test edi, edi
jle 0x5c1f7b2
nop dword [eax + eax]
mov al, byte [edx]
dec edi
test al, al
je 0x5c1f7b2
inc edx
cmp al, 0xc0
jb 0x5c1f7ae
mov al, byte [edx]
and al, 0xc0
cmp al, 0x80
jne 0x5c1f7ae
mov al, byte [edx + 1]
inc edx
and al, 0xc0
cmp al, 0x80
je 0x5c1f7a4
test edi, edi
jg 0x5c1f790
mov edi, dword [esp + 0x20]
sub edx, edi
mov dword [esp + 0x1c], edx
jmp 0x5c1fa91
xor edx, edx
mov dword [esp + 0x1c], edx
test edi, edi
jle 0x5c1fc43
nop
cmp byte [edx + eax], 0
je 0x5c1fc43
inc edx
mov dword [esp + 0x1c], edx
cmp edx, edi
jl 0x5c1f7d0
jmp 0x5c1fc43
mov edi, dword [esp + 0x20]
mov edx, edi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x5c1f7f1
sub edx, ecx
and edx, 0x7fffffff
mov dword [esp + 0x1c], edx
jmp 0x5c1fa91
cmp dl, 0xe
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x27], 0
mov dword [esp + 0x4c], eax
je 0x5c1f882
mov esi, dword [esp + 0x78]
mov edx, dword [esi + 4]
cmp dword [esi], edx
jg 0x5c1f839
mov dword [esp + 0x40], 0
jmp 0x5c1f89c
mov eax, dword [esi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dword [esi + 4], eax
test ecx, ecx
jne 0x5c1f84d
xor esi, esi
jmp 0x5c1f890
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x5c1f86a
cmp byte [ecx + 0x12], 1
jne 0x5c1f86a
mov esi, dword [ecx + 8]
jmp 0x5c1f890
test dl, 1
je 0x5c1f873
xor esi, esi
jmp 0x5c1f890
mov dl, 1
call fcn.05bfaa80
mov esi, eax
mov dword [esp + 0x30], eax
jmp 0x5c1f894
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov esi, dword [eax - 4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x40], esi
test esi, esi
jne 0x5c1f8b2
cmp byte [esp + 0x17], 0xa
mov esi, str.NULL
mov eax, str._NULL_
cmovne esi, eax
mov dword [esp + 0x30], esi
mov eax, edi
xorps xmm0, xmm0
cdq
mov dword [esp + 0x58], eax
mov eax, edx
mov edx, dword [esp + 0x58]
mov ecx, edx
mov dword [esp + 0x3c], eax
or ecx, eax
movlpd qword [esp + 0x80], xmm0
mov eax, dword [esp + 0x84]
movlpd qword [esp + 0x60], xmm0
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x50], eax
je 0x5c1f9b8
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x58], eax
mov al, byte [esi + ecx]
test al, al
je 0x5c1f956
cmp al, byte [esp + 0x4c]
jne 0x5c1f918
add dword [esp + 0x58], 1
adc dword [esp + 0x50], 0
cmp byte [esp + 0x28], 0
je 0x5c1f940
and al, 0xc0
cmp al, 0xc0
jne 0x5c1f940
mov al, byte [esi + ecx + 1]
and al, 0xc0
cmp al, 0x80
jne 0x5c1f940
nop
mov al, byte [esi + ecx + 2]
add esi, 1
adc edi, 0
and al, 0xc0
cmp al, 0x80
je 0x5c1f930
add esi, 1
adc edi, 0
add edx, 0xffffffff
mov eax, edx
adc dword [esp + 0x3c], 0xffffffff
or eax, dword [esp + 0x3c]
jne 0x5c1f901
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x40], 0
je 0x5c1f970
cmp byte [esp + 0x17], 0xa
mov dword [esp + 0x40], 1
je 0x5c1f978
mov dword [esp + 0x40], 0
mov ecx, esi
mov eax, edi
add ecx, 3
adc eax, 0
add edx, ecx
mov ecx, dword [esp + 0x50]
adc ecx, eax
js 0x5c1f9c1
jg 0x5c1f993
cmp edx, 0x46
jbe 0x5c1f9c1
push ecx
mov ecx, dword [esp + 0x1c]
push edx
call fcn.05c1ff90
mov ecx, eax
add esp, 8
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x20], ecx
test ecx, ecx
je case.default.0x5c1e622
jmp 0x5c1f9cc
mov edx, dword [esp + 0x80]
jmp 0x5c1f95a
lea eax, [esp + 0xa0]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x40], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
je 0x5c1f9f1
mov ecx, dword [esp + 0x4c]
mov edx, 1
mov byte [eax], cl
mov dword [esp + 0x3c], 0
jmp 0x5c1f9fd
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], edx
movlpd qword [esp + 0x60], xmm0
test edi, edi
jl 0x5c1fa74
jg 0x5c1fa11
test esi, esi
je 0x5c1fa74
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ecx
mov cl, byte [ecx + eax]
mov eax, dword [esp + 0x20]
mov byte [edx + eax], cl
add edx, 1
mov eax, dword [esp + 0x30]
adc dword [esp + 0x3c], 0
cmp cl, byte [esp + 0x4c]
jne 0x5c1fa54
mov eax, dword [esp + 0x20]
mov byte [edx + eax], cl
add edx, 1
mov eax, dword [esp + 0x30]
adc dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x50]
add ecx, 1
mov dword [esp + 0x50], ecx
adc dword [esp + 0x58], 0
cmp dword [esp + 0x58], edi
jl 0x5c1fa25
jg 0x5c1fa70
cmp ecx, esi
jb 0x5c1fa25
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x40], 0
mov edi, dword [esp + 0x20]
je 0x5c1fa8d
mov eax, dword [esp + 0x4c]
mov byte [edx + edi], al
add edx, 1
mov dword [esp + 0x1c], edx
mov byte [edx + edi], 0
cmp byte [esp + 0x28], 0
je 0x5c1fc47
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x1c]
jle 0x5c1fc47
lea esi, [edx - 1]
test esi, esi
js 0x5c1fc47
mov edx, dword [esp + 0x34]
nop word [eax + eax]
mov cl, byte [esi + edi]
lea eax, [edx + 1]
and cl, 0xc0
cmp cl, 0x80
cmovne eax, edx
sub esi, 1
mov edx, eax
jns 0x5c1fac0
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x1c]
jmp 0x5c1fc47
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x15], 1
je case.default.0x5c1e622
mov eax, dword [esp + 0x2c]
add eax, 4
cmp byte [esp + 0x29], 0
mov dword [esp + 0x2c], eax
mov esi, dword [eax - 4]
je 0x5c1fb2e
test esi, esi
je 0x5c1fb56
test dword [esi + 4], 0x800
jne 0x5c1fb56
push dword [esi + 8]
push ecx
call fcn.05c1df60
mov eax, dword [esp + 0x20]
add esp, 8
mov edx, esi
mov ecx, dword [eax]
call fcn.05c1e200
jmp 0x5c1fb52
test esi, esi
je 0x5c1fb56
mov eax, dword [esi + 4]
test eax, eax
je 0x5c1fb56
push eax
push dword [esi]
push ecx
call fcn.05c1dfc0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esi]
mov ecx, dword [eax]
call fcn.05c1e220
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], edx
jmp 0x5c1fc4b
mov edi, dword [esp + 0x18]
test byte [edi + 0x15], 1
je case.default.0x5c1e622
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x2c], eax
mov esi, dword [eax - 4]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x5c1fba6
cmp byte [esp + 0x28], 0
jne 0x5c1fba6
push eax
push edi
call fcn.05c1df60
add esp, 8
jmp 0x5c1fc39
cmp dword [esi + 8], 0
je 0x5c1fc05
mov eax, dword [esi + 4]
test eax, eax
je 0x5c1fbf7
push eax
push edi
call fcn.05c1df60
mov eax, dword [edi + 0x10]
add esp, 8
inc eax
cmp eax, dword [edi + 8]
jb 0x5c1fbe5
push 1
mov edx, 0x5c37dc4
mov ecx, edi
call fcn.05c1e010
add esp, 4
push dword [esi + 8]
push edi
call fcn.05c1df60
add esp, 8
jmp 0x5c1fc39
inc dword [edi + 0x10]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 4]
mov al, byte [0x5c37dc4]
mov byte [ecx + edx - 1], al
push dword [esi + 8]
push edi
call fcn.05c1df60
add esp, 8
jmp 0x5c1fc39
test eax, eax
je 0x5c1fc15
push eax
push edi
call fcn.05c1df60
add esp, 8
jmp 0x5c1fc39
mov eax, dword [esi + 0x14]
test dword [eax + 4], 0x800
push dword [eax + 0x10]
je 0x5c1fc2b
push str._join__u_
jmp 0x5c1fc30
push str._subquery__u_
push edi
call fcn.05c1d7d0
add esp, 0xc
xor edx, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edx
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
sub eax, edx
mov dword [esp + 0x34], eax
test eax, eax
jle 0x5c1fd47
cmp byte [esp + 0x3b], 0
jne 0x5c1fcba
mov esi, eax
cdq
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x10]
xor ecx, ecx
add eax, dword [esp + 0x58]
adc ecx, edx
js 0x5c1fc9a
jg 0x5c1fc83
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx + 8]
jb 0x5c1fc9a
mov ecx, dword [esp + 0x18]
push edx
push dword [esp + 0x5c]
call fcn.05c1e0b0
mov esi, eax
add esp, 8
test esi, esi
jle 0x5c1fcb6
mov edi, dword [esp + 0x18]
nop
mov eax, dword [edi + 0x10]
dec esi
mov ecx, dword [edi + 4]
mov byte [ecx + eax], 0x20
inc dword [edi + 0x10]
test esi, esi
jg 0x5c1fca0
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x10]
add eax, edx
cmp eax, dword [ecx + 8]
jb 0x5c1fcd5
push edx
mov edx, edi
call fcn.05c1e010
add esp, 4
jmp 0x5c1fcef
test edx, edx
je 0x5c1fcf3
mov eax, dword [ecx + 4]
add dword [ecx + 0x10], edx
sub eax, edx
add eax, dword [ecx + 0x10]
push edx
push edi
push eax
call fcn.05b15590
add esp, 0xc
mov ecx, dword [esp + 0x18]
cmp byte [esp + 0x3b], 0
je 0x5c1fd78
mov eax, dword [esp + 0x34]
mov esi, dword [ecx + 0x10]
xor ecx, ecx
cdq
add esi, eax
adc ecx, edx
js 0x5c1fd2b
jg 0x5c1fd15
mov ecx, dword [esp + 0x18]
cmp esi, dword [ecx + 8]
jb 0x5c1fd2b
mov ecx, dword [esp + 0x18]
push edx
push eax
call fcn.05c1e0b0
mov esi, eax
add esp, 8
test esi, esi
jle 0x5c1fd78
jmp 0x5c1fd2f
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
dec esi
mov ecx, dword [edx + 4]
mov byte [ecx + eax], 0x20
inc dword [edx + 0x10]
test esi, esi
jg 0x5c1fd33
jmp 0x5c1fd7c
mov eax, dword [ecx + 0x10]
add eax, edx
cmp eax, dword [ecx + 8]
jb 0x5c1fd5e
push edx
mov edx, edi
call fcn.05c1e010
add esp, 4
jmp 0x5c1fd78
test edx, edx
je 0x5c1fd78
mov eax, dword [ecx + 4]
add dword [ecx + 0x10], edx
sub eax, edx
add eax, dword [ecx + 0x10]
push edx
push edi
push eax
call fcn.05b15590
add esp, 0xc
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x8c]
test edi, edi
je 0x5c1fe43
mov ecx, dword [edx]
test ecx, ecx
je 0x5c1fdde
cmp edi, dword [ecx + 0x174]
jae 0x5c1fdcc
cmp edi, dword [ecx + 0x16c]
jb 0x5c1fdb4
mov eax, dword [ecx + 0x168]
mov dword [edi], eax
mov dword [ecx + 0x168], edi
jmp 0x5c1fe3a
cmp edi, dword [ecx + 0x170]
jb 0x5c1fdcc
mov eax, dword [ecx + 0x160]
mov dword [edi], eax
mov dword [ecx + 0x160], edi
jmp 0x5c1fe3a
cmp dword [ecx + 0x220], 0
je 0x5c1fdde
mov edx, edi
call fcn.05c20b70
jmp 0x5c1fe36
cmp dword [0x5c525e8], 0
je 0x5c1fe2c
mov eax, dword [0x5c545d8]
test eax, eax
je 0x5c1fdfa
push eax
call dword [0x5c52638]
add esp, 4
push edi
call dword [0x5c52614]
sub dword [0x5c54628], eax
add esp, 4
dec dword [0x5c5464c]
push edi
call dword [0x5c5260c]
mov eax, dword [0x5c545d8]
add esp, 4
test eax, eax
je 0x5c1fe36
push eax
call dword [0x5c52640]
jmp 0x5c1fe33
push edi
call dword [0x5c5260c]
add esp, 4
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x8c], ecx
mov esi, dword [esp + 0x7c]
inc esi
movsx eax, byte [esi]
test eax, eax
jne 0x5c1e2e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.05b011bc
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x10]
inc eax
cmp eax, dword [edx + 8]
jb 0x5c1fe99
mov ecx, dword [esp + 0x18]
mov edx, 0x5c37da0
push 1
call fcn.05c1e010
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.05b011bc
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
inc dword [edx + 0x10]
mov edx, dword [edx + 0x10]
mov ecx, dword [eax + 4]
mov al, byte [0x5c37da0]
mov byte [ecx + edx - 1], al
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.05b011bc
mov esp, ebp
pop ebp
ret