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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov esi, edx
mov eax, dword [0x72a00c]
xor eax, ebp
mov dword [esp + 0x78], eax
mov edx, dword [edx]
mov eax, dword [edx]
mov edi, dword [eax]
mov dword [esp + 0x40], edi
cmp byte [edi + 0x57], 0
jne 0x6077b1
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
lea edi, [eax + eax*2]
shl edi, 4
lea eax, [edx + 0x1f0]
mov dword [esp + 0x60], eax
mov dword [esp + 4], ecx
mov ebx, dword [ecx + edi]
mov dword [esp + 0x34], edx
mov dword [edx + 0x1f0], 0
mov edx, dword [ebx + 0xc]
mov dword [esp + 0x18], 0
test edx, edx
mov dword [esp + 0x1c], ebx
je 0x604ce0
mov eax, dword [edx + 4]
cmp byte [edx], 0x9a
jne 0x604ced
mov ecx, eax
and ecx, 0x20
jne 0x604ced
mov eax, dword [edx + 0x1c]
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x1f8], eax
jne 0x604d17
xor eax, eax
inc eax
mov dword [esp + 0x24], eax
jmp 0x604d7c
mov dword [esp + 0x24], 0
jmp 0x604d7c
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
test eax, 0x810000
jne 0x604d7c
mov ecx, dword [esp + 0x60]
call fcn.00607e80
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], edx
jmp 0x604d7c
mov edx, dword [ecx + 0x1f4]
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
cmp edx, 2
jl 0x604d7c
dec edx
xor ecx, ecx
mov ebx, dword [esp + 0x34]
cmp dword [ebx + ecx*4 + 0x1fc], eax
je 0x604d59
inc ecx
cmp edx, ecx
jne 0x604d39
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
jmp 0x604d78
inc cl
xor ebx, ebx
inc ebx
xor edx, edx
shld edx, ebx, cl
xor eax, eax
shl ebx, cl
test cl, 0x20
cmovne edx, ebx
mov dword [esp + 0x18], edx
cmovne ebx, eax
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x1c]
movzx eax, byte [ebx]
mov dword [esp + 0x10], eax
cmp eax, 0x2f
mov dword [esp + 8], esi
mov dword [esp + 0x38], edi
jne 0x604e9c
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.005eb6c0
test eax, eax
jne 0x6077b1
test byte [ebx + 5], 0x10
mov edx, dword [ebx + 0x14]
jne 0x604ef0
test edx, edx
je 0x604f2a
mov eax, dword [edx]
mov dword [esp + 0x28], eax
test eax, eax
jle 0x604f2a
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [esp + 0x5c], edx
lea eax, [edi + edi*4]
mov edx, dword [edx + eax*4 + 8]
test edx, edx
je 0x604e06
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 4]
cmp byte [edx], 0x9a
jne 0x604e0c
mov eax, ecx
and eax, 0x20
jne 0x604e0c
mov edx, dword [edx + 0x1c]
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x1f8], edx
jne 0x604e3a
xor eax, eax
inc eax
jmp 0x604e5e
xor eax, eax
xor ebx, ebx
jmp 0x604e64
xor eax, eax
mov ebx, 0
test ecx, 0x810000
mov ecx, dword [esp + 0xc]
jne 0x604e64
mov ecx, dword [esp + 0x60]
call fcn.00607e80
mov ecx, dword [esp + 0xc]
mov ebx, edx
mov edx, dword [esp + 0x5c]
mov edx, dword [edx]
mov dword [esp + 0x28], edx
jmp 0x604e64
mov ebx, dword [eax + 0x1f4]
xor eax, eax
cmp ebx, 2
jl 0x604e5e
dec ebx
xor ecx, ecx
mov eax, dword [esp + 0x34]
cmp dword [eax + ecx*4 + 0x1fc], edx
je 0x604e80
inc ecx
cmp ebx, ecx
jne 0x604e4a
xor eax, eax
xor ebx, ebx
mov ecx, dword [esp + 0xc]
or esi, ebx
or ecx, eax
inc edi
cmp edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
jl 0x604dd4
jmp 0x604f2e
inc cl
xor ebx, ebx
xor eax, eax
inc eax
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov ecx, 0
cmovne eax, ecx
jmp 0x604e60
mov edx, dword [ebx + 0x10]
xor esi, esi
test edx, edx
je 0x604ecd
mov esi, dword [edx + 4]
cmp byte [edx], 0x9a
jne 0x604ed4
mov ecx, esi
and ecx, 0x20
jne 0x604ed4
mov ebx, dword [edx + 0x1c]
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x1f8], ebx
jne 0x604eff
xor eax, eax
inc eax
xor esi, esi
jmp 0x604f5a
xor eax, eax
jmp 0x604f5a
xor eax, eax
test esi, 0x810000
mov esi, 0
jne 0x604f5a
mov ecx, dword [esp + 0x60]
call fcn.00607e80
mov esi, edx
jmp 0x604f5a
mov ecx, dword [esp + 0x60]
call fcn.00607860
mov ecx, eax
mov esi, edx
jmp 0x604f2e
mov edx, dword [ecx + 0x1f4]
xor eax, eax
mov esi, 0
cmp edx, 2
jl 0x604f5a
dec edx
xor ecx, ecx
mov esi, dword [esp + 0x34]
cmp dword [esi + ecx*4 + 0x1fc], ebx
je 0x604f43
inc ecx
cmp edx, ecx
jne 0x604f18
xor eax, eax
jmp 0x604ec6
xor ecx, ecx
xor esi, esi
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 4]
mov dword [eax + edi + 0x24], esi
mov dword [eax + edi + 0x20], ecx
jmp 0x604ff9
inc cl
xor eax, eax
inc eax
xor esi, esi
shld esi, eax, cl
xor edx, edx
shl eax, cl
test cl, 0x20
cmovne esi, eax
cmovne eax, edx
mov ecx, dword [esp + 4]
mov dword [ecx + edi + 0x24], esi
mov edx, eax
mov dword [ecx + edi + 0x20], eax
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
cmp dword [ebx + 0xc], 0
je 0x604f85
mov ecx, eax
and ecx, 0x41000
jne 0x604f85
cmp dword [ebx + 0x14], 0
je 0x604ff7
cmp byte [ebx], 0x9a
jne 0x604fa7
mov ecx, eax
and ecx, 0x20
jne 0x604fa7
mov eax, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x1f8], eax
jne 0x604fc6
xor esi, esi
xor ecx, ecx
inc ecx
jmp 0x605001
xor ecx, ecx
mov esi, 0
test eax, 0x810000
jne 0x605001
mov ecx, dword [esp + 0x60]
mov edx, ebx
call fcn.00607e80
mov ecx, eax
mov esi, edx
jmp 0x605001
mov edx, dword [ecx + 0x1f4]
xor ecx, ecx
mov esi, 0
cmp edx, 2
jl 0x605001
dec edx
xor ecx, ecx
mov esi, dword [esp + 0x34]
cmp dword [esi + ecx*4 + 0x1fc], eax
je 0x605774
inc ecx
cmp edx, ecx
jne 0x604fdf
xor ecx, ecx
xor esi, esi
jmp 0x605001
mov ecx, edx
or ecx, dword [esp + 0x24]
or esi, dword [esp + 0x18]
mov eax, dword [esp + 0x60]
cmp dword [eax], 0
je 0x605013
mov eax, dword [esp + 4]
or byte [eax + edi + 0xb], 0x10
mov dword [esp + 0xc], ecx
mov eax, dword [ebx + 4]
test al, 3
mov dword [esp + 0x28], esi
je 0x605038
mov edi, dword [ebx + 0x24]
mov ecx, dword [esp + 0x34]
cmp dword [ecx + 0x1f8], edi
jne 0x605042
xor esi, esi
xor edx, edx
inc edx
jmp 0x605086
mov dword [esp + 0x5c], 0
jmp 0x6050ae
mov ebx, dword [ecx + 0x1f4]
xor edx, edx
mov esi, 0
cmp ebx, 2
jl 0x605086
dec ebx
xor ecx, ecx
mov edx, dword [esp + 0x34]
cmp dword [edx + ecx*4 + 0x1fc], edi
je 0x60506f
inc ecx
cmp ebx, ecx
jne 0x60505b
xor edx, edx
xor esi, esi
jmp 0x605086
inc cl
xor edx, edx
inc edx
xor esi, esi
shld esi, edx, cl
xor edi, edi
shl edx, cl
test cl, 0x20
cmovne esi, edx
cmovne edx, edi
test al, 1
jne 0x6050bc
mov ebx, dword [esp + 0x28]
mov ecx, ebx
mov edi, dword [esp + 0xc]
shld ecx, edi, 0x1f
mov edi, ebx
shr edi, 1
mov dword [esp + 0x5c], 0
cmp ecx, edx
sbb edi, esi
mov ebx, dword [esp + 0x1c]
jae 0x6050ff
mov dword [esp + 0x64], 0
mov edi, dword [esp + 8]
jmp 0x60512c
mov ecx, dword [esp + 0xc]
or ecx, edx
mov edi, dword [esp + 0x28]
or edi, esi
mov eax, edx
add eax, 0xffffffff
mov dword [esp + 0x5c], eax
mov eax, esi
adc eax, 0xffffffff
mov dword [esp + 0x64], eax
mov eax, edi
mov dword [esp + 0xc], ecx
shld eax, ecx, 0x1f
mov dword [esp + 0x28], edi
mov ecx, edi
shr ecx, 1
cmp eax, edx
sbb ecx, esi
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
jb 0x60512c
jmp 0x605226
mov ecx, dword [esp + 0x30]
cmp dword [ecx], 0
mov edi, dword [esp + 8]
jle 0x605116
test byte [ecx + 0x2c], 0x40
jne 0x605226
and eax, 0xfffffffd
mov dword [ebx + 4], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 4]
lea ecx, [esi + eax]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + eax + 0x2c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esi + eax + 0x28], ecx
xor edx, edx
dec edx
mov dword [esi + eax + 0x14], edx
mov dword [esi + eax + 0x10], edx
mov word [esi + eax + 0xc], 0
mov eax, dword [esp + 0x10]
add eax, 0xffffffd5
cmp eax, 0xc
ja 0x605354
mov ecx, 0x1f31
bt ecx, eax
jae 0x605354
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov eax, dword [ebx + 0xc]
mov esi, 0
test eax, eax
mov edx, dword [esp + 0x38]
je 0x6051a6
test byte [eax + 5], 0x20
je 0x6051a4
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x605193
xor esi, esi
jmp 0x6051a6
mov esi, eax
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x6051b8
test byte [ebx + 5], 0x20
je 0x6051c2
mov ebx, dword [ebx + 0xc]
jmp 0x6051a9
mov al, 1
mov dword [esp + 0x2c], eax
xor ebx, ebx
jmp 0x6051ca
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 4]
mov eax, dword [edi + edx + 0x24]
and eax, dword [esp + 0x18]
mov ecx, dword [edi + edx + 0x20]
and ecx, dword [esp + 0x24]
or ecx, eax
mov eax, 0x3fff
mov ecx, 0x800
cmove ecx, eax
mov dword [esp + 0x44], ecx
mov eax, dword [edi + edx + 0x1c]
test eax, eax
jle 0x605203
mov ecx, dword [esi + 0x14]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*4 - 0xc]
mov cl, byte [esi]
mov eax, dword [esp + 0x10]
and eax, 0xfffffffc
mov dword [esp + 0x48], eax
cmp eax, 0x34
jne 0x60523c
mov eax, esi
cmp cl, 0xa4
jne 0x60523e
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 8]
mov cl, byte [eax]
jmp 0x60523e
push str.ON_clause_references_tables_to_its_right
push dword [esp + 0x18]
call fcn.0057bd30
add esp, 8
jmp 0x6077b1
mov eax, esi
mov edi, dword [esp + 4]
add edi, edx
add edi, 0x14
mov dword [esp + 0x20], edi
cmp cl, 0x9a
jne 0x605261
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x70], ecx
movsx eax, word [eax + 0x20]
mov dword [esp + 0x74], eax
jmp 0x6052bd
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
mov dword [esp + 0x50], ecx
test ecx, ecx
jle 0x60530c
xor edi, edi
mov ecx, dword [esp + 0x30]
lea edx, [edi + edi*8]
mov edx, dword [ecx + edx*8 + 0x18]
mov edx, dword [edx + 8]
test edx, edx
je 0x605292
cmp dword [edx + 0x28], 0
jne 0x60529b
mov edx, dword [edx + 0x14]
jmp 0x605283
inc edi
cmp edi, dword [esp + 0x50]
jne 0x605279
jmp 0x60530c
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x30]
push edi
push eax
call fcn.00608120
add esp, 8
test eax, eax
je 0x60530c
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 4]
add edx, edi
add edx, 0x18
mov edi, dword [esp + 0x20]
mov dword [edi], ecx
mov dword [edx], eax
mov eax, dword [esp + 0x10]
cmp al, 0x2b
je 0x6052e6
cmp eax, 0x2f
je 0x6052ec
cmp eax, 0x30
jne 0x6052f1
mov ax, 0x100
jmp 0x6052fd
mov ax, 0x80
jmp 0x6052fd
xor eax, eax
inc eax
jmp 0x6052fd
mov ecx, eax
add cl, 0xcd
mov eax, 2
shl eax, cl
movzx ecx, word [esp + 0x44]
and ecx, eax
mov eax, dword [esp + 0x20]
mov word [eax - 8], cx
cmp byte [esp + 0x10], 0x2b
jne 0x605320
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 4]
or byte [ecx + eax + 0xb], 8
cmp byte [esp + 0x2c], 0
jne 0x6055bd
mov cl, byte [ebx]
cmp dword [esp + 0x48], 0x34
jne 0x6054fe
mov eax, ebx
cmp cl, 0xa4
mov edx, dword [esp + 0x30]
jne 0x605504
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 8]
mov cl, byte [eax]
jmp 0x605504
mov al, byte [ebx]
movzx ecx, al
cmp ecx, 0x30
jg 0x6056d7
cmp ecx, 0x29
je 0x605906
cmp ecx, 0x2e
jne 0x606e67
cmp byte [edi + 8], 0x2a
jne 0x606e65
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xc], eax
mov edx, dword [eax + 8]
xor esi, esi
mov edi, 0
test edx, edx
je 0x6053a5
xor eax, eax
mov ecx, dword [esp + 0x40]
push eax
push eax
call fcn.005ed930
add esp, 8
mov edi, eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x6053be
xor eax, eax
mov ecx, dword [esp + 0x40]
push eax
push eax
call fcn.005ed930
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x37
push edi
push esi
call fcn.005c3a50
add esp, 8
test eax, eax
je 0x6053e6
mov ecx, dword [ebx + 4]
and ecx, 3
je 0x6053e6
or dword [eax + 4], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 3
call fcn.006049d0
add esp, 4
mov esi, eax
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
mov eax, dword [edi + 0x18]
shl esi, 4
lea ecx, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi + 0x18]
shl edx, 4
lea esi, [edx + edx*2]
movzx edx, word [eax + esi + 8]
mov word [eax + ecx + 8], dx
mov eax, dword [edi + 0x18]
mov dword [esp + 4], esi
inc byte [eax + esi + 0xe]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0x1c]
xor esi, esi
mov edi, 0
test edx, edx
je 0x60545b
xor eax, eax
mov ecx, dword [esp + 0x40]
push eax
push eax
call fcn.005ed930
add esp, 8
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x605478
xor eax, eax
mov ecx, dword [esp + 0x40]
push eax
push eax
call fcn.005ed930
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x35
push edi
push esi
call fcn.005c3a50
add esp, 8
test eax, eax
je 0x6054a8
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
and ecx, 3
je 0x6054a8
or dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x24]
mov dword [eax + 0x24], ecx
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 3
call fcn.006049d0
add esp, 4
mov esi, eax
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
mov ebx, dword [edi + 0x18]
shl esi, 4
lea eax, [esi + esi*2]
mov ecx, dword [ebp + 8]
mov dword [ebx + eax + 0x10], ecx
mov ecx, dword [edi + 0x18]
mov esi, dword [esp + 4]
movzx edx, word [ecx + esi + 8]
mov word [ecx + eax + 8], dx
mov eax, dword [edi + 0x18]
inc byte [eax + esi + 0xe]
add ebx, esi
mov dword [esp + 0x4c], ebx
jmp 0x606e61
mov eax, ebx
mov edx, dword [esp + 0x30]
cmp cl, 0x9a
jne 0x60551a
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x70], ecx
movsx eax, word [eax + 0x20]
mov dword [esp + 0x74], eax
jmp 0x605566
mov ecx, dword [edx]
mov dword [esp + 0x2c], ecx
test ecx, ecx
jle 0x6055bd
xor edi, edi
mov ecx, dword [esp + 0x30]
lea edx, [edi + edi*8]
mov edx, dword [ecx + edx*8 + 0x18]
mov edx, dword [edx + 8]
test edx, edx
je 0x605547
cmp dword [edx + 0x28], 0
jne 0x605550
mov edx, dword [edx + 0x14]
jmp 0x605538
inc edi
cmp edi, dword [esp + 0x2c]
jne 0x60552e
jmp 0x6055bd
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x30]
push edi
push eax
call fcn.00608120
add esp, 8
test eax, eax
je 0x6055bd
test byte [ebx + 4], 0x20
jne 0x6055bd
mov eax, dword [esp + 0x20]
cmp dword [eax], 0
js 0x605675
mov edx, dword [esp + 0x1c]
test edx, edx
mov esi, dword [esp + 8]
je 0x605792
xor eax, eax
mov edi, dword [esp + 0x40]
mov ecx, edi
push eax
push eax
call fcn.005ed930
add esp, 8
cmp byte [edi + 0x57], 0
je 0x6057a4
test eax, eax
je 0x6077b1
mov edx, eax
mov ecx, dword [esp + 0x40]
call fcn.005a8230
jmp 0x6077b1
cmp byte [esp + 0x10], 0x30
jne 0x606e5d
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 4]
test al, 1
jne 0x60566c
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 4]
add ecx, edx
add ecx, 0x28
mov dl, byte [esi]
movzx edi, dl
lea ebx, [edi - 0xa0]
cmp ebx, 2
jae 0x6055f9
mov esi, dword [esi + 0xc]
jmp 0x6055e4
cmp edi, 0xa3
jne 0x605604
mov dl, byte [esi + 2]
mov ebx, dword [esp + 0x1c]
movzx edx, dl
lea edi, [edx - 0x8f]
cmp edi, 3
jb 0x605649
cmp edx, 0x6b
je 0x605649
cmp edx, 0x9a
jne 0x60566c
test byte [esi + 6], 0x20
jne 0x60566c
mov edi, dword [esi + 0x2c]
test edi, edi
je 0x60566c
movsx edx, word [esi + 0x20]
test edx, edx
js 0x605649
mov esi, dword [edi + 4]
test esi, esi
je 0x605649
shl edx, 4
test byte [esi + edx + 4], 0xf
je 0x60566c
mov byte [ebx], 0x9d
mov dword [ebx + 8], 0x704a7d
or eax, 0x20000000
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov word [eax - 8], 0
mov edi, dword [esp + 8]
jmp 0x606e65
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
mov edx, dword [ecx + 0xc]
cmp byte [edx], 0xa4
mov ebx, ecx
je 0x605ad6
mov esi, dword [ecx + 0x10]
cmp byte [esi], 0xa4
je 0x605ad6
test byte [edx + 5], 2
jne 0x605a8b
test esi, esi
je 0x6056bb
test byte [esi + 5], 2
jne 0x6056cc
mov ecx, dword [esp + 0x14]
call fcn.005b4790
test eax, eax
jne 0x605a94
mov ecx, dword [esp + 0x14]
mov edx, esi
jmp 0x605a8f
cmp ecx, 0x31
je 0x60594c
cmp ecx, 0x9f
jne 0x606e67
cmp byte [edi + 8], 0x2a
jne 0x606e65
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x606e65
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx]
mov esi, dword [eax]
mov edx, dword [ebx + 8]
mov ecx, edi
push 0
push 1
push esi
call fcn.0057ec30
add esp, 0xc
test eax, eax
je 0x60566c
mov edx, dword [eax + 4]
test dl, 4
je 0x60566c
mov eax, dword [eax + 8]
mov cl, byte [eax]
mov byte [esp + 0x18], cl
mov cl, byte [eax + 1]
mov byte [esp + 0x24], cl
mov al, byte [eax + 2]
mov byte [esp + 0x10], al
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xc], 0
cmp esi, 3
jge 0x6064a0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x6064ec
test byte [ecx + 5], 0x20
je 0x6064ee
mov ecx, dword [ecx + 0xc]
jmp 0x60575d
inc cl
xor edx, edx
inc edx
xor esi, esi
shld esi, edx, cl
xor eax, eax
shl edx, cl
test cl, 0x20
mov ecx, edx
cmovne esi, edx
cmovne ecx, eax
jmp 0x605001
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x57], 0
jne 0x6077b1
xor edi, edi
jmp 0x6057a6
mov edi, eax
mov ecx, esi
mov edx, edi
push 3
call fcn.006049d0
add esp, 4
test eax, eax
je 0x6077b1
mov dword [esp + 0x20], edi
mov ebx, dword [esi + 0x18]
mov ecx, eax
shl ecx, 4
lea ecx, [ecx + ecx*2]
mov edi, dword [ebp + 8]
mov dword [ebx + ecx + 0x10], edi
mov edx, dword [esi + 0x18]
mov esi, edi
shl esi, 4
lea esi, [esi + esi*2]
movzx edi, word [edx + esi + 8]
mov word [edx + ecx + 8], di
mov edi, dword [esp + 8]
mov edx, dword [edi + 0x18]
inc byte [edx + esi + 0xe]
mov edx, ebx
cmp byte [esp + 0x10], 0x2b
jne 0x605806
lea eax, [eax + eax*2]
shl eax, 4
or byte [edx + eax + 0xb], 8
add edx, ecx
mov edi, dword [edi + 0x18]
mov ecx, dword [esp + 0x38]
or word [edi + ecx + 0xa], 8
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
test byte [eax + 0x50], 0x80
lea eax, [edi + ecx]
mov dword [esp + 0x4c], eax
mov dword [esp + 4], edx
jne 0x605a76
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx]
cmp eax, 0x33
je 0x605845
cmp eax, 0x2b
jne 0x606036
test byte [ecx + 4], 1
jne 0x606036
mov esi, ecx
mov ecx, dword [ecx + 0xc]
call fcn.005ea9e0
mov ebx, eax
mov ecx, dword [esi + 0x10]
call fcn.005ea9e0
cmp bl, al
je 0x605878
cmp bl, 0x43
jl 0x605a76
cmp al, 0x43
jl 0x605a76
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
call fcn.0057e910
test eax, eax
je 0x606043
cmp dword [eax + 0xc], 0x602c70
je 0x606043
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x14]
mov ecx, esi
call fcn.005b4790
mov ebx, eax
test eax, eax
jne 0x6058be
mov eax, dword [esi]
mov ebx, dword [eax + 8]
mov ecx, esi
mov edx, dword [esp + 0x10]
call fcn.005b4790
test eax, eax
jne 0x6058d6
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov esi, dword [eax]
mov ecx, dword [ebx]
xor edx, edx
movzx ebx, byte [ecx + edx]
movzx eax, byte [esi + edx]
cmp bl, al
jne 0x6058f1
test ebx, ebx
jne 0x605903
jmp 0x606043
mov bl, byte [ebx + 0x717d00]
cmp bl, byte [eax + 0x717d00]
jne 0x605a76
inc edx
jmp 0x6058dc
mov eax, dword [edi]
mov edx, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov ecx, dword [eax]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x58], edx
mov esi, dword [edx + eax]
test ecx, ecx
mov dword [esp + 0x4c], ecx
je 0x605b6a
cmp byte [ecx + 0x57], 0
jne 0x606016
mov edx, 0x1a8
push 0
call fcn.00580000
add esp, 4
jmp 0x605b76
mov esi, dword [ebx + 0xc]
cmp byte [esi], 0x9a
jne 0x606e65
cmp word [esi + 0x20], 0
js 0x606e65
test byte [ebx + 4], 1
jne 0x606e65
xor edi, edi
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x57], 0
mov ebx, 0
jne 0x6059bc
mov ecx, dword [esp + 0x40]
mov edx, 0x34
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x6059bc
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x6f
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov ebx, eax
test esi, esi
je 0x6059d4
xor eax, eax
mov ecx, dword [esp + 0x40]
mov edx, esi
push eax
push eax
call fcn.005ed930
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x34
push ebx
push edi
call fcn.005c3a50
add esp, 8
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 0x83
call fcn.006049d0
add esp, 4
test eax, eax
mov ebx, dword [esp + 0x1c]
je 0x606e65
mov ecx, dword [edi + 0x18]
shl eax, 4
lea eax, [eax + eax*2]
xor edx, edx
mov dword [ecx + eax + 0x24], edx
mov dword [ecx + eax + 0x20], edx
mov edx, dword [esi + 0x1c]
mov dword [ecx + eax + 0x14], edx
movsx edx, word [esi + 0x20]
mov dword [ecx + eax + 0x18], edx
mov word [ecx + eax + 0xc], 4
mov edx, dword [edi + 0x18]
mov esi, dword [ebp + 8]
mov dword [edx + eax + 0x10], esi
mov edx, dword [edi + 0x18]
shl esi, 4
lea esi, [esi + esi*2]
movzx edi, word [edx + esi + 8]
mov word [edx + eax + 8], di
mov edi, dword [esp + 8]
mov edx, dword [edi + 0x18]
inc byte [edx + esi + 0xe]
mov edx, dword [edi + 0x18]
or word [edx + esi + 0xa], 8
movsd xmm0, qword [edx + esi + 0x28]
movsd qword [ecx + eax + 0x28], xmm0
lea eax, [edx + esi]
jmp 0x60602d
mov dword [esp + 0x10], 0
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x20]
jmp 0x60568d
mov ecx, dword [esp + 0x14]
call fcn.005b4790
mov dword [esp + 0x20], eax
mov edx, dword [ebx + 0x10]
test byte [edx + 5], 2
jne 0x605ac5
mov eax, ebx
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x605ab0
test byte [esi + 5], 2
jne 0x605abd
mov ecx, dword [esp + 0x14]
call fcn.005b4790
test eax, eax
jne 0x605ace
mov ecx, dword [esp + 0x14]
mov edx, esi
jmp 0x605ac9
mov ecx, dword [esp + 0x14]
call fcn.005b4790
cmp dword [esp + 0x20], eax
mov ecx, ebx
je 0x605ada
xor byte [ecx + 5], 4
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebx + 0xc]
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
mov al, byte [ebx]
cmp al, 0x34
jb 0x605af0
xor al, 2
mov byte [ebx], al
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 4]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x64]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x5c]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 0x28], eax
movzx ecx, byte [ebx]
cmp ecx, 0x2b
je 0x605b3e
cmp ecx, 0x2f
je 0x605b44
cmp ecx, 0x30
jne 0x605b49
mov ax, 0x100
jmp 0x605b53
mov ax, 0x80
jmp 0x605b53
xor eax, eax
inc eax
jmp 0x605b53
add cl, 0xcd
mov eax, 2
shl eax, cl
movzx ecx, word [esp + 0x10]
add ecx, eax
movzx eax, word [esp + 0x44]
and eax, ecx
mov word [edx + 0xc], ax
jmp 0x606e61
mov ecx, 0x1a8
xor edx, edx
call fcn.00576290
test eax, eax
je 0x606016
mov dword [esp + 0x68], esi
xor ecx, ecx
push 0x1a8
push ecx
push eax
mov edi, eax
call fcn.006719e0
add esp, 0xc
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov dword [ecx + eax + 0x18], edi
or byte [ecx + eax + 0xa], 0x10
lea esi, [edi + 0x20]
push 0x180
xor eax, eax
push eax
push esi
call fcn.006719e0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [edi], eax
mov byte [edi + 9], 0
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], 8
mov dword [edi + 0x18], esi
mov ecx, edi
mov edx, dword [esp + 0x68]
push 0x29
call fcn.00602e30
add esp, 4
mov esi, dword [edi + 0xc]
test esi, esi
jle 0x605c09
inc esi
lea eax, [esi - 2]
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
dec esi
cmp esi, 1
ja 0x605bf1
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x57], 0
mov edi, dword [esp + 8]
jne 0x606026
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
test edx, edx
jle 0x60608d
mov ecx, dword [eax + 0x18]
xor esi, esi
dec esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
movzx eax, word [ecx + 0xc]
test eax, 0x1ff
je 0x605cdc
mov dword [esp + 0x2c], eax
movzx eax, word [ecx + 0xa]
mov dword [esp + 4], eax
test al, 8
jne 0x605ff6
mov dword [esp + 0x50], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], ecx
mov esi, dword [ecx + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x1f8]
mov dword [esp + 0x44], 0
xor ecx, ecx
inc ecx
cmp edx, esi
mov eax, dword [esp + 0x2c]
je 0x605e2a
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 0x1f4]
xor ecx, ecx
mov dword [esp + 0x44], 0
cmp edi, 2
jl 0x605e2a
mov dword [esp + 0x3c], edx
dec edi
xor ecx, ecx
mov edx, dword [esp + 0xc]
cmp dword [edx + ecx*4 + 0x1fc], esi
je 0x605e06
inc ecx
cmp edi, ecx
jne 0x605cb7
xor ecx, ecx
mov dword [esp + 0x44], 0
jmp 0x605e26
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], 0
mov ecx, dword [esp + 0x4c]
cmp byte [ecx + 0x57], 0
je 0x605cff
mov dword [esp + 0x28], 0
jmp 0x605ff2
mov dword [esp + 0x50], esi
mov dword [esp + 0x48], edx
mov edx, 0x1a0
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x605de9
mov esi, eax
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x18], eax
or byte [ebx + 0xa], 0x20
mov word [ebx + 0xc], 0x400
mov dword [ebx + 0x14], 0xffffffff
mov edi, eax
add edi, 0x20
push 0x180
xor eax, eax
push eax
push edi
call fcn.006719e0
add esp, 0xc
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov dword [esi], eax
mov byte [esi + 9], 0
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x10], 8
mov dword [esi + 0x18], edi
mov edx, dword [ebx]
mov ecx, esi
push 0x2a
call fcn.00602e30
add esp, 4
mov edi, dword [esi + 0xc]
test edi, edi
mov ebx, dword [esp + 0x30]
jle 0x605d9f
inc edi
lea eax, [edi - 2]
mov ecx, ebx
mov edx, esi
push eax
call fcn.00604c40
add esp, 4
dec edi
cmp edi, 1
ja 0x605d89
mov edi, dword [esp + 8]
mov dword [esi + 4], edi
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x4c]
cmp byte [eax + 0x57], 0
mov eax, 0
mov edx, 0
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
je 0x605ea1
mov esi, dword [esp + 0x50]
and esi, eax
and dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
mov edx, dword [esp + 0x48]
jmp 0x605ff6
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
jmp 0x605ff2
inc cl
xor esi, esi
xor edx, edx
inc edx
shld esi, edx, cl
shl edx, cl
test cl, 0x20
cmovne esi, edx
mov dword [esp + 0x44], esi
mov ecx, 0
cmovne edx, ecx
mov ecx, edx
mov edx, dword [esp + 0x3c]
test byte [esp + 4], 2
jne 0x605e3a
mov edi, dword [esp + 0x44]
jmp 0x605fc1
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 0x18]
mov ebx, edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x10]
lea edx, [edx + edx*2]
shl edx, 4
mov edx, dword [ecx + edx + 0x14]
xor edi, edi
xor esi, esi
inc esi
cmp ebx, edx
je 0x605faf
mov ecx, dword [esp + 0xc]
mov ebx, dword [ecx + 0x1f4]
xor esi, esi
mov edi, 0
cmp ebx, 2
jl 0x605faf
dec ebx
xor ecx, ecx
mov esi, dword [esp + 0xc]
cmp dword [esi + ecx*4 + 0x1fc], edx
je 0x605f95
inc ecx
cmp ebx, ecx
jne 0x605e82
xor esi, esi
xor edi, edi
jmp 0x605faf
mov eax, dword [esi + 0xc]
mov dword [esp + 0x3c], eax
test eax, eax
jle 0x60600d
mov esi, dword [esi + 0x18]
xor eax, eax
xor edx, edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], edx
mov dword [esp + 4], eax
mov eax, dword [esi]
movzx eax, byte [eax]
add eax, 0xffffffd5
cmp eax, 0xc
mov dword [esp + 0x44], esi
ja 0x605f84
mov edx, 0x1f31
bt edx, eax
jae 0x605f84
mov edx, dword [esi + 0x14]
xor edi, edi
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x1f8], edx
je 0x605f4d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x1f4]
xor ebx, ebx
mov edi, 0
cmp eax, 2
jl 0x605f4d
dec eax
xor ecx, ecx
mov edi, dword [esp + 0xc]
cmp dword [edi + ecx*4 + 0x1fc], edx
je 0x605f2f
inc ecx
cmp eax, ecx
jne 0x605f17
xor ebx, ebx
xor edi, edi
jmp 0x605f49
inc cl
xor edi, edi
xor ebx, ebx
inc ebx
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
mov eax, 0
cmovne ebx, eax
mov ecx, dword [esp + 0x18]
or dword [esp + 4], ebx
mov edx, dword [esp + 0x2c]
or edx, edi
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
inc esi
mov eax, dword [esp + 0x44]
add eax, 0x30
mov dword [esp + 0x24], esi
cmp esi, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 4]
jne 0x605ebf
jmp 0x605dce
cmp word [esi + 0xc], 0x40
je 0x605eea
mov edx, dword [esp + 0x2c]
jmp 0x605f5f
inc cl
xor edi, edi
xor esi, esi
inc esi
shld edi, esi, cl
shl esi, cl
test cl, 0x20
cmovne edi, esi
mov ecx, 0
cmovne esi, ecx
mov ecx, dword [esp + 4]
or ecx, esi
mov edx, dword [esp + 0x44]
or edx, edi
mov edi, edx
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x50]
and esi, ecx
mov edx, dword [esp + 0x24]
and edx, ecx
and dword [esp + 0x20], edi
mov ecx, dword [esp + 0x28]
and ecx, edi
and eax, 2
test eax, eax
cmove ecx, eax
mov dword [esp + 0x28], ecx
cmove edx, eax
mov dword [esp + 0x24], edx
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
cmp edx, 2
jl 0x606059
dec edx
add ecx, 0x30
mov eax, esi
or eax, dword [esp + 0x20]
jne 0x605c40
jmp 0x606059
xor eax, eax
xor edx, edx
jmp 0x605dce
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov dword [ecx + eax + 0x18], 0
mov eax, dword [edi + 0x18]
add eax, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
jmp 0x606e65
mov dword [esp + 0x10], 0
jmp 0x605689
mov eax, dword [esp + 0x38]
or byte [edi + eax + 0xd], 8
mov ax, 0x800
mov dword [esp + 0x10], eax
jmp 0x605a7e
mov eax, dword [esp + 0x10]
mov dword [eax + 0x1a0], esi
mov ecx, dword [esp + 0x20]
or esi, ecx
mov dword [eax + 0x1a4], ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov word [ecx + eax + 0xc], 0x200
mov dword [ecx + eax + 0x14], 0xffffffff
jne 0x6060b9
jmp 0x60625a
mov edx, eax
xor ecx, ecx
dec ecx
mov dword [eax + 0x1a4], ecx
mov dword [eax + 0x1a0], ecx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov word [edx + eax + 0xc], 0x200
mov dword [edx + eax + 0x14], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov byte [edi + 9], 1
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 2
jne 0x60625a
mov eax, dword [eax + 0x18]
xor edx, edx
movzx ecx, word [eax + 0xc]
cmp ecx, 0x400
jne 0x6060f3
mov ecx, dword [eax + 0x18]
cmp dword [ecx + 0xc], edx
jle 0x60625a
lea esi, [edx + edx*2]
shl esi, 4
add esi, dword [ecx + 0x18]
jmp 0x6060fd
mov esi, eax
test edx, edx
jne 0x60625a
test esi, esi
je 0x60625a
mov dword [esp + 4], esi
inc edx
mov dword [esp + 0x18], edx
xor esi, esi
movzx ecx, word [eax + 0x3c]
cmp ecx, 0x400
jne 0x606133
mov ecx, dword [eax + 0x48]
cmp dword [ecx + 0xc], esi
jle 0x60624d
lea edi, [esi + esi*2]
shl edi, 4
add edi, dword [ecx + 0x18]
jmp 0x60613e
lea edi, [eax + 0x30]
test esi, esi
jne 0x60624d
test edi, edi
je 0x60624d
mov al, byte [edi + 0xa]
mov ecx, dword [esp + 4]
or al, byte [ecx + 0xa]
js 0x6061c4
mov eax, dword [esp + 4]
movzx eax, word [eax + 0xc]
mov ecx, eax
and ecx, 0x3e
test cx, cx
je 0x6061c4
movzx ecx, word [edi + 0xc]
mov edx, ecx
and edx, 0x3e
test dx, dx
je 0x6061c4
or ecx, eax
movzx ebx, cx
test ebx, 0xffe5
je 0x606188
mov eax, ebx
and eax, 0x26
cmp eax, ebx
jne 0x6061c4
mov eax, dword [edi]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
xor ecx, ecx
push 0xffffffffffffffff
push dword [eax + 0xc]
call fcn.005ea4c0
add esp, 8
test eax, eax
jne 0x6061c4
mov eax, dword [edi]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
push 0xffffffffffffffff
push dword [eax + 0x10]
call fcn.005ea4c0
add esp, 8
test eax, eax
je 0x6061d5
inc esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x606110
lea eax, [ebx - 1]
test bl, 0x18
mov ecx, 8
mov edx, 0x20
cmove ecx, edx
test eax, ebx
cmovne ebx, ecx
mov eax, dword [esp + 4]
mov edx, dword [eax]
test edx, edx
je 0x6061c4
mov eax, dword [esp + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax]
xor eax, eax
push eax
push eax
call fcn.005ed930
add esp, 8
test eax, eax
je 0x6061c4
movzx edx, bx
xor ecx, ecx
mov edi, 2
shl edi, cl
inc ecx
cmp edi, edx
jne 0x606216
add cl, 0x32
mov byte [eax], cl
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 3
call fcn.006049d0
add esp, 4
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
jmp 0x6061c4
mov edi, dword [esp + 8]
mov edx, dword [esp + 0x18]
jmp 0x6060d0
mov eax, dword [esp + 0x24]
or eax, dword [esp + 0x28]
je 0x606026
xor edx, edx
dec edx
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0xc]
test ebx, ebx
jle 0x6063e9
mov esi, dword [eax + 0x18]
and byte [esi + 0xa], 0xbf
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esp + 0x18]
je 0x606316
xor eax, eax
mov edi, ecx
xor edx, edx
inc edx
mov ecx, dword [esp + 0xc]
mov dword [esp + 4], edi
cmp dword [ecx + 0x1f8], edi
je 0x606302
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x1f4]
xor edx, edx
mov eax, 0
cmp edi, 2
jl 0x606302
dec edi
xor ecx, ecx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
cmp dword [eax + ecx*4 + 0x1fc], edx
je 0x6062e8
inc ecx
cmp edi, ecx
jne 0x6062d0
xor edx, edx
xor eax, eax
jmp 0x606302
inc cl
xor eax, eax
xor edx, edx
inc edx
shld eax, edx, cl
shl edx, cl
test cl, 0x20
cmovne eax, edx
mov ecx, 0
cmovne edx, ecx
and edx, dword [esp + 0x24]
and eax, dword [esp + 0x28]
or eax, edx
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
jne 0x60632c
lea eax, [ebx - 1]
add esi, 0x30
cmp ebx, 1
mov ebx, eax
jg 0x60628f
jmp 0x6063e9
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
test ebx, ebx
jle 0x6063d8
mov eax, dword [esi]
mov ecx, dword [esi + 0x18]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
xor eax, eax
mov dword [esp + 0x44], ecx
cmp dword [esi + 0x14], edx
jne 0x6063bb
mov dword [esp + 0x20], 0
cmp dword [esi + 0x18], ecx
jne 0x6063d8
mov dword [esp + 0x2c], eax
cmp ecx, 0xfffffffe
jne 0x606383
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, dword [esp + 0x54]
push 0xffffffffffffffff
push dword [esp + 0x54]
call fcn.005ea4c0
add esp, 8
test eax, eax
jne 0x6063d0
mov edi, dword [esi]
mov ecx, dword [edi + 0x10]
call fcn.005ea9e0
mov byte [esp + 0x18], al
mov ecx, dword [edi + 0xc]
call fcn.005ea9e0
mov cl, byte [esp + 0x18]
test cl, cl
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
je 0x6063ad
cmp cl, al
jne 0x6063d8
or byte [esi + 0xa], 0x40
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
jmp 0x6063bf
and byte [esi + 0xa], 0xbf
add esi, 0x30
inc eax
cmp ebx, eax
jne 0x60634d
xor eax, eax
inc eax
mov dword [esp + 0x20], eax
jmp 0x6063d8
mov edi, dword [esp + 8]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x48]
lea eax, [ecx + 1]
or ecx, dword [esp + 0x20]
je 0x606275
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 0x1c]
je 0x606026
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
test edi, edi
jle 0x6065ab
mov ebx, dword [eax + 0x18]
inc edi
xor edx, edx
xor esi, esi
test byte [ebx + 0xa], 0x40
je 0x606478
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x606430
mov ecx, dword [esp + 0x4c]
xor eax, eax
push eax
push eax
call fcn.005ed930
add esp, 8
jmp 0x606432
xor eax, eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test esi, esi
je 0x606459
mov edx, dword [esi]
cmp dword [esi + 4], edx
jle 0x606464
lea ecx, [edx + 1]
mov dword [esi], ecx
lea ecx, [edx + edx*4]
xorps xmm0, xmm0
movups xmmword [esi + ecx*4 + 0xc], xmm0
mov dword [esi + ecx*4 + 8], eax
jmp 0x606473
mov ecx, dword [ecx]
mov edx, eax
call fcn.006104b0
jmp 0x606471
mov ecx, dword [ecx]
mov edx, esi
push eax
call fcn.00610510
add esp, 4
mov esi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
add ebx, 0x30
dec edi
cmp edi, 1
ja 0x60640f
test edx, edx
je 0x6065b1
xor eax, eax
mov ecx, dword [esp + 0x4c]
push eax
push eax
call fcn.005ed930
add esp, 8
mov edx, eax
jmp 0x6065b3
mov ecx, dword [eax + 0x30]
cmp byte [ecx], 0x6b
jne 0x60566c
mov esi, dword [ecx + 8]
mov cl, byte [esi]
mov dword [esp + 0xc], ecx
test cl, cl
je 0x60566c
cmp byte [esi + 1], 0
jne 0x606e5d
mov cl, byte [esp + 0x18]
cmp byte [esp + 0xc], cl
je 0x606e5d
mov cl, byte [esp + 0x24]
cmp byte [esp + 0xc], cl
mov ebx, dword [esp + 0x1c]
jne 0x60575a
jmp 0x60566c
xor ecx, ecx
mov esi, dword [eax + 0x1c]
mov al, byte [ecx]
cmp al, 0x92
jne 0x606583
mov byte [esp + 0x44], al
test byte [edi + 0x22], 0x80
jne 0x60566c
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xdc]
mov dword [esp + 0x58], ecx
movsx ebx, word [ecx + 0x20]
mov dword [esp + 0x20], 0
test eax, eax
je 0x606562
mov edx, dword [eax + 0x64]
mov ecx, ebx
lea ecx, [ebx + ebx*4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
test byte [edx + ecx*8 - 0x18], 1
jne 0x606562
mov eax, dword [eax]
mov dword [esp + 0x54], eax
test eax, eax
je 0x606bbc
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x57], 0
je 0x606bca
xor esi, esi
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov ecx, ebx
cmp cx, 0x20
jl 0x6066ea
or byte [eax + 0xd3], 0x80
jmp 0x6066f9
mov dword [esp + 0x48], esi
cmp al, 0x6b
jne 0x60566c
mov byte [esp + 0x44], al
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], ecx
mov esi, dword [ecx + 8]
mov dword [esp + 0x20], 0
jmp 0x6066f9
xor esi, esi
xor edx, edx
jmp 0x6065b7
xor edx, edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
je 0x6065ee
test edx, edx
je 0x6065d2
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
call fcn.005a8230
test esi, esi
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x4c]
je 0x606026
mov edx, esi
call fcn.005b4580
jmp 0x606026
mov dword [esp + 4], edx
mov edx, 0x34
push 0
call fcn.00580000
mov edx, dword [esp + 8]
add esp, 4
test eax, eax
je 0x6065c3
mov edi, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x2f
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
xor eax, eax
inc eax
test edx, edx
je 0x606656
mov edx, dword [esp + 4]
mov dword [edi + 0xc], edx
mov ecx, 0x400208
and ecx, dword [edx + 4]
mov dword [edi + 4], ecx
mov ecx, dword [edx + 0x18]
test ecx, ecx
jle 0x606656
inc ecx
mov dword [edi + 0x18], ecx
mov eax, ecx
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x84]
cmp ecx, eax
jge 0x606678
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x5c]
call fcn.0057bd30
add esp, 0xc
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
and eax, 3
je 0x606691
or dword [edi + 4], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x24]
mov dword [edi + 0x24], eax
mov dword [edi + 0x14], esi
mov ecx, dword [esp + 8]
mov edx, edi
mov edi, ecx
push 3
call fcn.006049d0
add esp, 4
mov esi, eax
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
mov eax, dword [edi + 0x18]
shl esi, 4
lea ecx, [esi + esi*2]
mov edx, dword [ebp + 8]
mov dword [eax + ecx + 0x10], edx
mov eax, dword [edi + 0x18]
shl edx, 4
lea edx, [edx + edx*2]
movzx esi, word [eax + edx + 8]
mov word [eax + ecx + 8], si
mov eax, dword [edi + 0x18]
inc byte [eax + edx + 0xe]
mov ebx, dword [esp + 0x1c]
jmp 0x606026
dec bl
xor edx, edx
inc edx
mov ecx, ebx
shl edx, cl
or dword [eax + 0xd0], edx
mov al, 1
mov dword [esp + 0x2c], eax
test esi, esi
je 0x60684f
mov al, byte [esi]
mov dword [esp + 0x28], 0
test al, al
je 0x606857
cmp al, byte [esp + 0x18]
je 0x606857
cmp al, byte [esp + 0x24]
je 0x606857
cmp al, byte [esp + 0x10]
je 0x606857
xor ebx, ebx
mov ecx, eax
mov ah, byte [esp + 0x18]
mov ch, byte [esp + 0x24]
lea edx, [ebx + 1]
cmp cl, byte [esp + 0xc]
jne 0x606758
cmp byte [esi + ebx + 1], 0
je 0x606758
add ebx, 2
mov edx, ebx
mov ebx, edx
mov cl, byte [esi + edx]
test cl, cl
je 0x60676f
cmp cl, ah
je 0x60676f
cmp cl, ch
je 0x60676f
cmp cl, byte [esp + 0x10]
jne 0x606743
test ebx, ebx
je 0x60684f
cmp byte [ebx + esi - 1], 0xff
je 0x60684f
cmp ebx, 1
jg 0x6067a1
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], 0
cmp al, byte [esp + 0xc]
je 0x60685f
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], 0
cmp cl, byte [esp + 0x18]
jne 0x6067c5
xor eax, eax
cmp byte [ebx + esi + 1], 0
sete al
mov dword [esp + 0x10], eax
push esi
call fcn.00687040
add esp, 4
cmp byte [edi + 0x57], 0
je 0x606ca8
mov dword [esp + 0x2c], 0
cmp byte [esp + 0x44], 0x92
jne 0x60685f
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x20]
mov ecx, eax
dec cl
xor edx, edx
inc edx
shl edx, cl
cmp ax, 0x20
mov eax, 0x80000000
cmovl eax, edx
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 8]
or dword [edi + 0xd0], eax
cmp dword [esp + 0x10], 0
je 0x606857
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 8]
cmp byte [eax + 1], 0
je 0x607852
mov eax, dword [esp + 0x14]
mov al, byte [eax + 0x13]
test al, al
je 0x6077f0
dec al
mov ecx, dword [esp + 0x14]
mov byte [ecx + 0x13], al
movzx eax, al
mov esi, dword [ecx + eax*4 + 0x94]
jmp 0x6077fb
mov dword [esp + 0x28], 0
mov dword [esp + 0x10], 0
mov esi, dword [esp + 0x20]
test esi, esi
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
je 0x60688c
test byte [esi + 0x11], 0x90
jne 0x60687b
cmp dword [esi + 0x18], 0
je 0x606882
mov ecx, esi
call fcn.00593060
mov ecx, dword [esi + 0x14]
mov edx, esi
call fcn.0057fe10
cmp byte [esp + 0x2c], 0
jne 0x606e65
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x28], 0
je 0x6068c0
xor eax, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
push eax
push eax
call fcn.005ed930
add esp, 8
mov esi, eax
jmp 0x6068c2
xor esi, esi
mov eax, dword [esp + 0x50]
mov ebx, eax
test al, 8
jne 0x606923
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x606923
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 4]
or byte [ecx + eax + 0xb], 4
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
mov dl, byte [eax]
test dl, dl
je 0x606923
xor ecx, ecx
movzx edi, dl
mov dh, byte [edi + 0x717e6d]
not dh
or dh, 0xdf
and dh, dl
mov byte [eax], dh
mov al, byte [edi + 0x717d00]
mov edx, dword [esi + 8]
mov byte [edx + ecx], al
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
add eax, ecx
inc eax
inc ecx
mov dl, byte [eax]
test dl, dl
jne 0x6068f4
mov eax, dword [esp + 0x40]
cmp byte [eax + 0x57], 0
jne 0x60697b
mov edi, dword [esi + 8]
test edi, edi
je 0x606944
push edi
call fcn.00687040
add esp, 4
and eax, 0x3fffffff
jmp 0x606946
xor eax, eax
mov cl, byte [eax + edi - 1]
mov edx, ebx
test dl, 8
jne 0x606975
movzx edx, cl
mov dword [esp + 4], edx
cmp cl, 0x40
mov ecx, dword [esp + 0x10]
mov edx, 0
cmove ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
mov cl, byte [ecx + 0x717d00]
inc cl
mov byte [edi + eax - 1], cl
test bl, 8
mov eax, str.NOCASE
mov ebx, 0x717f6d
cmove ebx, eax
cmp dword [esp + 0xc], 0
je 0x6069aa
xor eax, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
push eax
push eax
call fcn.005ed930
add esp, 8
mov edi, eax
jmp 0x6069ac
xor edi, edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
jne 0x606a15
mov edx, 0x3b
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x606a15
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x67
mov word [eax + 0x22], 0xffff
mov ecx, eax
add ecx, 0x34
mov dword [eax + 8], ecx
mov ecx, dword [ebx]
mov dword [eax + 0x34], ecx
movzx ecx, word [ebx + 4]
mov word [eax + 0x38], cx
mov byte [eax + 0x3a], 0
mov dword [eax + 0x18], 1
mov dword [eax + 0xc], edi
mov dword [eax + 4], 0x2200
mov edi, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x37
push dword [esp + 0x28]
push edi
call fcn.005c3a50
add esp, 8
test eax, eax
je 0x606a48
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
and ecx, 3
je 0x606a48
or dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x24]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 8]
mov edx, eax
push 0x103
call fcn.006049d0
add esp, 4
mov dword [esp + 4], eax
cmp dword [esp + 0xc], 0
je 0x606a7e
xor eax, eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xc]
push eax
push eax
call fcn.005ed930
add esp, 8
mov edi, eax
jmp 0x606a80
xor edi, edi
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
jne 0x606ae9
mov edx, 0x3b
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x606ae9
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x67
mov word [eax + 0x22], 0xffff
mov ecx, eax
add ecx, 0x34
mov dword [eax + 8], ecx
mov ecx, dword [ebx]
mov dword [eax + 0x34], ecx
movzx ecx, word [ebx + 4]
mov word [eax + 0x38], cx
mov byte [eax + 0x3a], 0
mov dword [eax + 0x18], 1
mov dword [eax + 0xc], edi
mov dword [eax + 4], 0x2200
mov edi, eax
mov ecx, dword [esp + 0x14]
mov edx, 0x36
push esi
push edi
call fcn.005c3a50
add esp, 8
test eax, eax
mov edx, dword [esp + 0x1c]
je 0x606b15
mov ecx, dword [edx + 4]
and ecx, 3
je 0x606b15
or dword [eax + 4], ecx
mov ecx, dword [edx + 0x24]
mov dword [eax + 0x24], ecx
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 0x103
call fcn.006049d0
add esp, 4
mov esi, eax
mov ebx, dword [esp + 0x30]
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00604c40
add esp, 4
mov ecx, ebx
mov edx, edi
push esi
call fcn.00604c40
add esp, 4
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x38]
add ecx, eax
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x10], 0
je 0x606e61
mov ecx, dword [esp + 4]
shl ecx, 4
lea ecx, [ecx + ecx*2]
mov ebx, dword [ebp + 8]
mov dword [eax + ecx + 0x10], ebx
mov edx, dword [edi + 0x18]
mov eax, ebx
shl eax, 4
lea eax, [eax + eax*2]
movzx edi, word [edx + eax + 8]
mov word [edx + ecx + 8], di
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0x18]
inc byte [ecx + eax + 0xe]
mov ecx, dword [edi + 0x18]
shl esi, 4
lea edx, [esi + esi*2]
mov dword [ecx + edx + 0x10], ebx
mov ecx, dword [edi + 0x18]
movzx esi, word [ecx + eax + 8]
mov word [ecx + edx + 8], si
mov ecx, dword [edi + 0x18]
inc byte [ecx + eax + 0xe]
jmp 0x606e61
mov ecx, 0x28
xor edx, edx
call fcn.00576290
jmp 0x606bdd
mov ecx, dword [esp + 0x54]
mov edx, 0x28
push 0
call fcn.00580000
add esp, 4
mov dword [esp + 0x3c], eax
mov esi, 0
cmp dword [esp + 0x3c], 0
je 0x606564
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + ecx*8]
add eax, 0xffffffd8
xorps xmm0, xmm0
mov edx, dword [esp + 0x3c]
movups xmmword [edx + 0x10], xmm0
xor esi, esi
mov dword [edx + 0x24], esi
mov dword [edx + 0x20], esi
movups xmmword [edx], xmm0
mov word [edx + 0x10], 1
mov ecx, dword [esp + 0x54]
mov dword [edx + 0x14], ecx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
movups xmm0, xmmword [eax]
movups xmmword [edx], xmm0
mov eax, ecx
and eax, 0xefff
mov word [edx + 0x10], ax
test cl, 0x12
je 0x606c6c
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
lea ecx, [ecx + edx*8]
add ecx, 0xffffffe8
test byte [ecx + 1], 0x20
jne 0x606c6c
or eax, 0x4000
mov ecx, dword [esp + 0x3c]
mov word [ecx + 0x10], ax
call fcn.0057a9d0
mov eax, dword [esp + 0x3c]
movzx eax, word [eax + 0x10]
mov ecx, eax
and ecx, 0x3f
cmp byte [ecx + 0x717e12], 3
jne 0x6077d6
mov ecx, eax
not ecx
test ecx, 0x202
jne 0x6077c4
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + 0x12], 1
jne 0x6077c4
mov eax, dword [esp + 0x3c]
mov esi, dword [eax + 8]
jmp 0x6077da
mov ecx, eax
and ecx, 0x3fffffff
mov dword [esp + 0x18], ecx
lea edx, [ecx + 0x35]
mov ecx, edi
push 0
call fcn.00580000
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x6067d8
xorps xmm0, xmm0
mov eax, dword [esp + 0x2c]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x6b
mov word [eax + 0x22], 0xffff
mov ecx, eax
add ecx, 0x34
mov dword [esp + 0x24], ecx
mov dword [eax + 8], ecx
cmp dword [esp + 0x18], 0
je 0x606d15
push dword [esp + 0x18]
push esi
push dword [esp + 0x2c]
call fcn.00670ee0
add esp, 0xc
xor ecx, ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov byte [eax + edx + 0x34], cl
mov dword [eax + 0x18], 1
mov dword [esp + 0x18], 0
mov byte [eax + ebx + 0x34], cl
test ebx, ebx
jle 0x606d78
movzx eax, byte [esp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0
xor ecx, ecx
mov eax, dword [esp + 0x24]
movsx esi, byte [eax + ecx]
xor edx, edx
cmp esi, dword [esp + 0xc]
sete dl
lea esi, [ecx + edx]
lea ecx, [ecx + edx + 1]
mov dl, byte [eax + esi]
mov esi, dword [esp + 0x18]
mov byte [eax + esi], dl
inc esi
mov dword [esp + 0x18], esi
cmp ecx, ebx
jl 0x606d51
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x48]
cmp byte [eax], 0x9a
jne 0x606dc1
mov ecx, dword [esp + 0x48]
call fcn.005ea9e0
cmp al, 0x42
jne 0x606dc1
mov eax, dword [esp + 0x48]
test byte [eax + 7], 3
jne 0x6077e3
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x6077e3
cmp byte [eax + 0x2b], 1
jne 0x6077e3
lea edx, [esp + 0x70]
mov ecx, dword [esp + 0x24]
push 1
push dword [esp + 0x1c]
call fcn.00593800
add esp, 8
test eax, eax
jg 0x606e22
cmp dword [esp + 0x18], 1
jne 0x606deb
mov eax, dword [esp + 0x24]
cmp byte [eax], 0x2d
je 0x606e22
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov al, byte [ebx + esi - 1]
mov byte [esp + 0xc], al
inc al
mov byte [ebx + esi - 1], al
lea edx, [esp + 0x70]
mov ecx, esi
push 1
push ebx
call fcn.00593800
add esp, 8
mov cl, byte [esp + 0xc]
mov byte [ebx + esi - 1], cl
test eax, eax
jle 0x6077e3
mov ecx, edi
mov edx, dword [esp + 0x2c]
call fcn.005a8230
cmp dword [esp + 0x20], 0
je 0x606e5d
mov eax, dword [esp + 0x20]
test byte [eax + 0x11], 0x90
jne 0x606e48
mov eax, dword [esp + 0x20]
cmp dword [eax + 0x18], 0
je 0x606e51
mov ecx, dword [esp + 0x20]
call fcn.00593060
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x14]
call fcn.0057fe10
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx]
movzx ecx, al
cmp al, 0x33
je 0x606e80
cmp ecx, 0x2f
je 0x607185
cmp ecx, 0x2b
jne 0x60727b
mov edx, dword [ebx + 0xc]
mov ah, byte [edx]
cmp ah, 0xa3
jne 0x606e8d
mov ah, byte [edx + 2]
cmp ah, 0x80
je 0x606ea6
movzx esi, ah
cmp esi, 0xa4
jne 0x60717d
lea esi, [edx + 0x14]
jmp 0x606eac
mov esi, dword [edx + 0x14]
add esi, 0x1c
mov esi, dword [esi]
mov esi, dword [esi]
mov dword [esp + 0xc], esi
cmp esi, 2
jl 0x60717d
mov esi, dword [ebx + 0x10]
mov ah, byte [esi]
cmp ah, 0xa3
jne 0x606eca
mov ah, byte [esi + 2]
cmp ah, 0x80
je 0x606edf
movzx edi, ah
cmp edi, 0xa4
jne 0x606eeb
lea edi, [esi + 0x14]
jmp 0x606ee5
mov edi, dword [esi + 0x14]
add edi, 0x1c
mov edi, dword [edi]
mov edi, dword [edi]
jmp 0x606eee
xor edi, edi
inc edi
cmp edi, dword [esp + 0xc]
mov edi, dword [esp + 8]
jne 0x60717d
test byte [edx + 5], 0x10
je 0x606f0c
test byte [esi + 5], 0x10
jne 0x60717d
cmp byte [edi + 8], 0x2a
jne 0x60717d
mov edx, 8
xor esi, esi
mov edi, dword [ebx + 0xc]
movzx eax, byte [edi]
cmp eax, 0xa4
mov dword [esp + 0x34], edx
je 0x606fd1
cmp eax, 0x80
jne 0x606fe4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [esp + 4], 0
cmp byte [ecx + 0x57], 0
jne 0x60701b
mov edx, 0x34
push 0
call fcn.00580000
mov edx, dword [esp + 0x38]
add esp, 4
test eax, eax
je 0x60701b
mov ebx, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0xa5
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x84]
test eax, eax
jg 0x606fbd
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x1c]
call fcn.0057bd30
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [ebx + 0x1c], eax
mov word [ebx + 0x20], si
mov dword [ebx + 0xc], edi
mov dword [esp + 4], ebx
jmp 0x60701b
mov eax, dword [edi + 0x14]
mov edi, dword [eax + edx]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0xcc], 2
jae 0x607010
test edi, edi
je 0x607006
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, edi
xor eax, eax
push eax
push eax
call fcn.005ed930
mov edx, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 4], eax
jmp 0x60701b
mov dword [esp + 4], 0
jmp 0x60701b
mov dword [esp + 4], edi
mov dword [eax + edx], 0
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x10]
movzx eax, byte [edi]
cmp eax, 0xa4
je 0x6070c3
cmp eax, 0x80
jne 0x6070d8
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
xor ebx, ebx
cmp byte [ecx + 0x57], 0
jne 0x6070ff
mov edx, 0x34
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x6070ff
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0xa5
mov word [eax + 0x22], 0xffff
mov dword [eax + 0x18], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax + 0x84]
test eax, eax
jg 0x6070b1
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push dword [esp + 0x1c]
mov ebx, ecx
call fcn.0057bd30
mov ecx, ebx
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x1c], eax
mov word [ecx + 0x20], si
mov dword [ecx + 0xc], edi
mov ebx, ecx
jmp 0x6070ff
mov eax, dword [edi + 0x14]
mov ebx, dword [eax + edx]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0xcc], 2
jae 0x6070f8
mov edi, ebx
test edi, edi
je 0x6070f4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, edi
xor eax, eax
push eax
push eax
call fcn.005ed930
add esp, 8
mov ebx, eax
jmp 0x6070ff
xor ebx, ebx
jmp 0x6070ff
mov dword [eax + edx], 0
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax]
mov ecx, dword [esp + 0x14]
push ebx
mov ebx, eax
push dword [esp + 8]
call fcn.005c3a50
add esp, 8
test eax, eax
je 0x60712e
mov ecx, dword [ebx + 4]
and ecx, 3
je 0x60712e
or dword [eax + 4], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, eax
push 0x8001
call fcn.006049d0
add esp, 4
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
inc esi
mov edx, dword [esp + 0x34]
add edx, 0x14
cmp dword [esp + 0xc], esi
jne 0x606f1d
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x38]
or word [eax + ecx + 0xa], 6
mov word [eax + ecx + 0xc], 0x2000
jmp 0x607796
cmp al, 0x2f
jne 0x60727b
mov edx, dword [esp + 0x4c]
cmp dword [edx + 0x1c], 0
jne 0x60727b
mov edx, dword [ebx + 0xc]
cmp byte [edx], 0xa4
jne 0x60727b
test byte [ebx + 5], 0x10
je 0x60727b
mov esi, dword [ebx + 0x14]
cmp dword [esi + 0x34], 0
je 0x6071bc
test byte [esi + 5], 2
je 0x60727b
cmp byte [edi + 8], 0x2a
jne 0x60727b
mov al, 0xa4
xor edi, edi
inc edi
mov ecx, dword [ebp + 8]
shl ecx, 4
lea ecx, [ecx + ecx*2]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0x1c]
cmp al, 0xa3
jne 0x6071e3
mov al, byte [edx + 2]
lea ecx, [edi - 1]
cmp al, 0x80
je 0x6071fd
movzx esi, al
xor eax, eax
inc eax
cmp esi, 0xa4
jne 0x607207
add edx, 0x14
jmp 0x607203
mov edx, dword [edx + 0x14]
add edx, 0x1c
mov eax, dword [edx]
mov eax, dword [eax]
cmp ecx, eax
jge 0x607796
mov dword [esp + 0x34], edi
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, ebx
push 0x8002
call fcn.006049d0
add esp, 4
mov ecx, dword [edi + 0x18]
mov edx, eax
shl edx, 4
lea esi, [edx + edx*2]
mov edx, dword [esp + 0x34]
mov dword [ecx + esi + 0x1c], edx
mov ecx, dword [esp + 0x30]
mov edx, edi
push eax
call fcn.00604c40
add esp, 4
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp + 8]
mov dword [eax + esi + 0x10], ecx
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 4]
movzx ecx, word [eax + edx + 8]
mov word [eax + esi + 8], cx
mov eax, dword [edi + 0x18]
mov edi, dword [esp + 0x34]
inc byte [eax + edx + 0xe]
mov edx, dword [ebx + 0xc]
mov al, byte [edx]
inc edi
jmp 0x6071dc
cmp byte [edi + 8], 0x2a
jne 0x607796
lea edx, [ecx - 0x31]
cmp edx, 2
jb 0x607308
cmp ecx, 0x9e
je 0x607308
cmp ecx, 0x9f
jne 0x607796
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x607796
cmp dword [edi], 2
jne 0x607796
mov esi, dword [edi + 0x1c]
cmp byte [esi], 0x9a
jne 0x607415
mov eax, dword [esi + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x607415
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
xor ecx, ecx
movzx edx, byte [eax + ecx]
movzx ebx, byte [ecx + str.match]
cmp dl, bl
jne 0x6072f3
test edx, edx
jne 0x607305
jmp 0x607381
mov dl, byte [edx + 0x717d00]
cmp dl, byte [ebx + 0x717d00]
jne 0x607388
inc ecx
jmp 0x6072db
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
cmp byte [ebx], 0x9a
mov edx, 0
jne 0x60732b
mov edx, dword [ebx + 0x2c]
cmp byte [edx + 0x2b], 1
mov edx, 0
sete dl
mov edi, edx
test ecx, ecx
je 0x60734a
cmp byte [ecx], 0x9a
jne 0x607344
mov edx, dword [ecx + 0x2c]
cmp byte [edx + 0x2b], 1
jne 0x607344
inc edi
mov esi, ecx
jmp 0x60734e
mov esi, ebx
mov ebx, ecx
jmp 0x60734e
mov esi, ebx
xor ebx, ebx
xor ecx, ecx
cmp al, 0x32
mov edx, 0x44
cmovne edx, ecx
cmp al, 0x9e
mov ecx, 0x45
cmovne ecx, edx
cmp al, 0x31
mov eax, 0x46
cmovne eax, ecx
mov dword [esp + 0x24], eax
test edi, edi
je 0x607796
mov eax, edi
jmp 0x607552
xor eax, eax
jmp 0x6074ab
xor edx, edx
movzx ebx, byte [eax + edx]
movzx ecx, byte [edx + str.glob]
cmp bl, cl
jne 0x60739f
test ebx, ebx
jne 0x6073ad
jmp 0x6073b0
mov bl, byte [ebx + 0x717d00]
cmp bl, byte [ecx + 0x717d00]
jne 0x6073b8
inc edx
jmp 0x60738a
xor eax, eax
inc eax
jmp 0x6074ab
xor ecx, ecx
movzx edx, byte [eax + ecx]
movzx ebx, byte [ecx + str.like]
cmp dl, bl
jne 0x6073cf
test edx, edx
jne 0x6073dd
jmp 0x6073e0
mov dl, byte [edx + 0x717d00]
cmp dl, byte [ebx + 0x717d00]
jne 0x6073ea
inc ecx
jmp 0x6073ba
mov eax, 2
jmp 0x6074ab
xor ecx, ecx
movzx edx, byte [eax + ecx]
movzx ebx, byte [ecx + str.regexp]
cmp dl, bl
jne 0x607404
test edx, edx
jne 0x607412
jmp 0x6074a6
mov dl, byte [edx + 0x717d00]
cmp dl, byte [ebx + 0x717d00]
jne 0x607415
inc ecx
jmp 0x6073ec
mov esi, dword [edi + 8]
cmp byte [esi], 0x9a
jne 0x607796
mov eax, dword [esi + 0x2c]
cmp byte [eax + 0x2b], 1
jne 0x607796
xor ecx, ecx
dec ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], ecx
mov ecx, dword [eax + 0x34]
xor eax, eax
test ecx, ecx
je 0x607455
mov edx, dword [esp + 0x40]
cmp dword [ecx], edx
je 0x607453
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x607446
jmp 0x607455
mov eax, ecx
mov ebx, dword [eax + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x48]
test ecx, ecx
je 0x607796
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
call dword [section..00cfg]
lea eax, [esp + 0x6c]
lea edx, [esp + 0x70]
push eax
push edx
push dword [esp + 0xc]
push 2
push ebx
call ecx
add esp, 0x14
mov dword [esp + 0x24], eax
cmp eax, 0x96
jl 0x607796
mov ebx, dword [edi + 0x1c]
xor eax, eax
inc eax
jmp 0x607552
mov eax, 3
mov al, byte [eax*8 + 0x71df20]
mov dword [esp + 0x24], eax
mov ebx, dword [edi + 8]
xor eax, eax
inc eax
jmp 0x607552
mov edx, 0x34
push 0
call fcn.00580000
add esp, 4
test eax, eax
je 0x6076e9
mov ebx, eax
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
mov dword [eax + 0x30], 0
mov byte [eax], 0x2c
mov word [eax + 0x22], 0xffff
xor eax, eax
inc eax
test esi, esi
je 0x607513
mov dword [ebx + 0x10], esi
mov eax, dword [esi + 4]
mov ecx, 0x400208
and eax, ecx
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x18]
inc eax
mov dword [ebx + 0x18], eax
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x84]
cmp ecx, eax
jge 0x607531
push ecx
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0057bd30
add esp, 0xc
mov eax, dword [esp + 0x1c]
test byte [eax + 4], 1
mov esi, dword [esp + 0xc]
je 0x6076fc
or byte [ebx + 4], 1
mov eax, dword [eax + 0x24]
mov dword [ebx + 0x24], eax
jmp 0x6076fc
test ebx, ebx
mov dword [esp + 0x18], eax
je 0x6075b9
mov eax, dword [ebx + 4]
cmp byte [ebx], 0x9a
mov edi, dword [esp + 0x34]
jne 0x6075c9
mov ecx, eax
and ecx, 0x20
jne 0x6075c9
mov eax, dword [ebx + 0x1c]
xor ecx, ecx
inc ecx
mov dword [esp + 4], 0
cmp dword [edi + 0x1f8], eax
je 0x60760d
mov edx, dword [edi + 0x1f4]
xor ecx, ecx
mov dword [esp + 4], 0
cmp edx, 2
jl 0x60760d
dec edx
xor ecx, ecx
cmp dword [edi + ecx*4 + 0x1fc], eax
je 0x6075ed
inc ecx
cmp edx, ecx
jne 0x60759f
xor ecx, ecx
mov dword [esp + 4], 0
jmp 0x60760d
xor ecx, ecx
mov dword [esp + 4], 0
mov edi, dword [esp + 0x34]
jmp 0x60760d
xor ecx, ecx
mov dword [esp + 4], 0
test eax, 0x810000
jne 0x60760d
mov ecx, dword [esp + 0x60]
mov edx, ebx
call fcn.00607e80
mov ecx, eax
mov dword [esp + 4], edx
jmp 0x60760d
inc cl
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, eax
cmovne edx, eax
mov dword [esp + 4], edx
mov eax, 0
cmovne ecx, eax
xor edx, edx
test esi, esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
je 0x607669
mov ecx, dword [esi + 4]
cmp byte [esi], 0x9a
jne 0x60766d
mov eax, ecx
and eax, 0x20
jne 0x60766d
mov esi, dword [esi + 0x1c]
xor eax, eax
inc eax
cmp dword [edi + 0x1f8], esi
mov ecx, dword [esp + 0x10]
je 0x6076ad
mov ebx, dword [edi + 0x1f4]
xor eax, eax
mov edx, 0
cmp ebx, 2
jl 0x6076ad
dec ebx
xor ecx, ecx
cmp dword [edi + ecx*4 + 0x1fc], esi
je 0x60768f
inc ecx
cmp ebx, ecx
jne 0x607655
xor eax, eax
xor edx, edx
jmp 0x6076a9
xor eax, eax
jmp 0x6076ad
xor eax, eax
mov edx, 0
test ecx, 0x810000
mov ecx, dword [esp + 0x10]
jne 0x6076ad
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xc]
call fcn.00607e80
jmp 0x6076a9
inc cl
xor edx, edx
xor eax, eax
inc eax
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [esp + 0x10]
and eax, ecx
and edx, dword [esp + 4]
or edx, eax
jne 0x60777e
mov edx, dword [esp + 0x30]
test edx, edx
je 0x6076d7
mov ecx, dword [esp + 0x40]
xor eax, eax
push eax
push eax
call fcn.005ed930
add esp, 8
mov esi, eax
jmp 0x6076d9
xor esi, esi
mov edi, dword [esp + 0x14]
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x6074c1
xor ebx, ebx
test esi, esi
je 0x6076f8
mov ecx, dword [edi]
mov edx, esi
call fcn.005a8230
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov ecx, edi
mov edx, ebx
push 3
call fcn.006049d0
add esp, 4
mov ecx, dword [edi + 0x18]
shl eax, 4
lea eax, [eax + eax*2]
mov edx, dword [esp + 4]
mov dword [ecx + eax + 0x24], edx
mov edx, dword [esp + 0x10]
mov dword [ecx + eax + 0x20], edx
mov edx, dword [esi + 0x1c]
mov dword [ecx + eax + 0x14], edx
movsx edx, word [esi + 0x20]
mov dword [ecx + eax + 0x18], edx
mov word [ecx + eax + 0xc], 0x40
mov edx, dword [esp + 0x24]
mov byte [ecx + eax + 0xf], dl
mov edx, dword [edi + 0x18]
mov esi, dword [ebp + 8]
mov dword [edx + eax + 0x10], esi
mov edx, dword [edi + 0x18]
shl esi, 4
lea esi, [esi + esi*2]
movzx ebx, word [edx + esi + 8]
mov word [edx + eax + 8], bx
mov edx, dword [edi + 0x18]
inc byte [edx + esi + 0xe]
mov edx, dword [edi + 0x18]
or word [edx + esi + 0xa], 8
movsd xmm0, qword [edx + esi + 0x28]
movsd qword [ecx + eax + 0x28], xmm0
mov ecx, dword [esp + 0x18]
lea eax, [ecx - 1]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0xc]
cmp ecx, 1
jg 0x607552
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x5c]
or dword [eax + ecx + 0x20], edx
mov edx, dword [esp + 0x64]
or dword [eax + ecx + 0x24], edx
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.0066e1f1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
test al, 1
jne 0x6077d6
xor edx, edx
inc edx
mov ecx, dword [esp + 0x3c]
call fcn.00593420
mov esi, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jmp 0x606564
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x6067d8
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 0x2c]
inc esi
mov dword [eax + 0x2c], esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
push esi
call fcn.005e4820
add esp, 4
mov ecx, dword [edi]
mov eax, 0x73ef90
cmp byte [ecx + 0x57], 0
jne 0x607828
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x6c]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
mov dword [eax + 0xc], 0
test esi, esi
je 0x607852
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x13]
cmp eax, 7
ja 0x607852
mov ecx, eax
inc cl
mov edx, dword [esp + 0x14]
mov byte [edx + 0x13], cl
mov dword [edx + eax*4 + 0x94], esi
mov dword [esp + 0x2c], 0
jmp 0x60685f