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

Disassembly:
sub esp, 0xec
push ebx
mov ebx, dword [esp + 0xf4]
push ebp
push edi
mov dword [esp + 0x60], 1
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [esp + 0xa0], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x54], edi
test edi, edi
jne 0x5c8e25
cmp dword [ebx + 0x80], edi
jne 0x5c8e16
test byte [eax + 0x50], 8
jne 0x5c8e16
mov byte [ebx + 0x17], 1
push ebx
call fcn.005d3190
add esp, 4
mov dword [esp + 0x54], eax
mov edi, eax
mov ebp, dword [esp + 0x100]
test ebp, ebp
je 0x5cbeb7
cmp dword [ebx + 0x24], 0
jne 0x5cbeb7
push 0
push 0
push 0
push 0x15
push ebx
call fcn.005a05a0
add esp, 0x14
test eax, eax
jne 0x5cbeb7
mov eax, dword [esp + 0x104]
cmp byte [eax], 6
ja 0x5c8e8e
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x5c8e80
push eax
push 0x5b0cd0
push ebx
call fcn.005c0350
add esp, 0xc
mov dword [ebp + 0x30], 0
mov eax, dword [ebp + 4]
and eax, 0xfffffffe
or eax, 0x400000
mov dword [ebp + 4], eax
push esi
push 0
push ebp
push ebx
call fcn.005cc300
add esp, 0xc
cmp dword [ebx + 0x24], 0
jne 0x5c8edb
mov esi, dword [ebp + 4]
test esi, 0x800000
je 0x5c8f10
mov eax, dword [ebp + 0x20]
push eax
lea ebp, [eax + 8]
push ebp
call fcn.0059a360
add esp, 8
test eax, eax
je 0x5c8f00
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x5c8ecc
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
push eax
push str.target_object_alias_may_not_appear_in_FROM_clause:__s
push ebx
call fcn.005abd70
add esp, 0xc
mov ecx, dword [ebx + 0xe8]
test ecx, ecx
jne 0x5cbe6e
pop esi
pop edi
xor eax, eax
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x5c]
pop ebp
pop ebx
add esp, 0xec
ret
mov ebp, dword [esp + 0x104]
and esi, 0xff7fffff
mov dword [ebp + 4], esi
mov eax, dword [esp + 0x108]
cmp byte [eax], 9
jne 0x5c8f26
push ebp
push ebx
call fcn.005b52d0
add esp, 8
push ebp
push ebx
call fcn.005e95c0
add esp, 8
test eax, eax
jne 0x5c8edb
mov eax, dword [ebp + 4]
xorps xmm0, xmm0
mov ecx, dword [ebp + 0x20]
xor esi, esi
shr eax, 3
and eax, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x30]
movups xmmword [esp + 0xd0], xmm0
mov dword [esp + 0x20], eax
movups xmmword [esp + 0xe0], xmm0
mov dword [esp + 0xd0], eax
movq qword [esp + 0xf0], xmm0
mov dword [esp + 0x54], esi
cmp dword [ebp + 0x34], esi
jne 0x5cbe3f
cmp dword [ecx], esi
jle 0x5c91fe
nop dword [eax]
lea eax, [esi + esi*8]
mov edx, dword [ecx + eax*8 + 0x18]
lea ebp, [ecx + eax*8]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x3c], eax
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x44], edx
test al, 0x48
je 0x5c90ac
movzx eax, al
and eax, 0x40
push eax
mov eax, dword [esp + 0x108]
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.005b05c0
add esp, 0xc
test eax, eax
je 0x5c90a4
mov eax, dword [esp + 0x28]
test dword [eax + 0x50], 0x2000
jne 0x5c90a4
mov al, byte [ebp + 0x2c]
test al, 8
je 0x5c9017
test al, 0x10
je 0x5c8ffb
and al, 0xf7
mov byte [ebp + 0x2c], al
jmp 0x5c9017
and al, 0xd7
mov byte [ebp + 0x2c], al
mov eax, dword [esp + 0x104]
push 0
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.005ebdd0
add esp, 0xc
test byte [ebp + 0x2c], 0x40
mov ecx, dword [esp + 0x10]
je 0x5c90a8
mov edx, dword [ecx]
lea ebp, [esi + 1]
cmp ebp, edx
jge 0x5c907e
mov edi, dword [esp + 0x104]
lea eax, [ebp*8]
add eax, ebp
lea esi, [ecx + 0x2c]
lea esi, [esi + eax*8]
mov al, byte [esi]
test al, 0x10
je 0x5c906c
test al, 8
je 0x5c9054
and al, 0xef
mov byte [esi], al
jmp 0x5c906c
push 1
push dword [esi + 8]
and al, 0xcf
mov byte [esi], al
push dword [edi + 0x24]
call fcn.005ebdd0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [ecx]
inc ebp
add esi, 0x48
cmp ebp, edx
jl 0x5c9044
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
add edx, 0xffffffff
js 0x5c91b3
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
add ecx, 0x2c
and byte [ecx], 0xbf
test byte [ecx], 0x10
jne 0x5c90a0
sub ecx, 0x48
sub edx, 1
jns 0x5c9090
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x5c91e0
mov eax, dword [eax + 0x1c]
movsx ecx, word [edx + 0x22]
mov eax, dword [eax]
cmp ecx, eax
jne 0x5c9368
test dword [ebp + 0x30], 0x100
je 0x5c90df
mov eax, dword [ebp + 0x4c]
cmp byte [eax + 0x12], 0
je 0x5c91dc
mov ebp, dword [esp + 0x3c]
mov eax, dword [ebp + 4]
test al, 8
jne 0x5c91dc
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x5c915b
mov edx, dword [esp + 0x104]
cmp dword [edx + 0x30], 0
jne 0x5c9116
mov ebx, dword [esp + 0x10]
cmp dword [ebx], 1
mov ebx, dword [esp + 0x100]
jle 0x5c91bc
cmp dword [ebp + 0x3c], 0
jne 0x5c91bc
test eax, 0x8000000
jne 0x5c91bc
test dword [edx + 4], 0x8000000
jne 0x5c91bc
mov eax, dword [esp + 0x28]
test dword [eax + 0x50], 0x40000
jne 0x5c91bc
push ecx
push 0x5b0cd0
push ebx
call fcn.005c0350
add esp, 0xc
mov dword [ebp + 0x30], 0
mov ebp, dword [esp + 0x104]
push dword [esp + 0x50]
push esi
push ebp
push ebx
call fcn.0057e050
add esp, 0x10
test eax, eax
je 0x5c9182
cmp dword [ebx + 0x24], 0
jne 0x5c8edb
or esi, 0xffffffff
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x10], ecx
cmp byte [eax + 0x57], 0
jne 0x5c8edb
mov eax, dword [esp + 0x108]
cmp byte [eax], 8
jbe 0x5c91e7
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x20], edx
mov dword [esp + 0xd0], edx
jmp 0x5c91e7
mov ebp, dword [esp + 0x14]
jmp 0x5c90a8
mov ebp, edx
test esi, esi
jne 0x5c9162
test dword [ebp + 4], 0x40000
je 0x5c9162
mov ecx, dword [esp + 0x10]
cmp dword [ecx], 1
je 0x5c91e7
test byte [ecx + 0x74], 0x22
jne 0x5c91e7
jmp 0x5c9162
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x104]
inc esi
cmp dword [ebp + 0x34], 0
mov dword [esp + 0x54], esi
jne 0x5cbe3f
cmp esi, dword [ecx]
jl 0x5c8f90
mov esi, dword [esp + 0x104]
mov eax, dword [esi + 0x24]
lea ebp, [esi + 0x24]
mov dword [esp + 0x34], ebp
test eax, eax
je 0x5c941d
cmp byte [eax], 0x2c
mov dword [esp + 0x34], ebp
jne 0x5c941d
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], ebp
test dword [eax + 0x50], 0x8000
jne 0x5c941d
mov eax, dword [ebx]
add eax, 0x57
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
nop dword [eax]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x90], 0
test eax, eax
je 0x5c9299
cmp dword [eax], 0
jle 0x5c9299
test byte [eax + 0x2c], 0x40
mov dword [esp + 0x94], 3
jne 0x5c92a4
mov dword [esp + 0x94], 1
push dword [ebp]
lea eax, [esp + 0x84]
push eax
call fcn.0057b580
add esp, 8
cmp dword [esp + 0x88], 0
je 0x5c9408
lea eax, [esp + 0x80]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], eax
mov eax, dword [ebp]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 0x5947e0
mov dword [esp + 0xb0], fcn.0040f310
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
test eax, eax
je 0x5c9329
push eax
lea eax, [esp + 0xac]
push eax
call fcn.005e1800
add esp, 8
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x98]
mov ecx, dword [eax]
test esi, esi
je 0x5c9401
test ecx, ecx
je 0x5c93ac
cmp esi, dword [ecx + 0x164]
jae 0x5c9397
cmp esi, dword [ecx + 0x15c]
jb 0x5c937f
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x5c9401
push eax
push dword [edx]
push ecx
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.005abd70
add esp, 0x14
jmp 0x5c8edb
cmp esi, dword [ecx + 0x160]
jb 0x5c9397
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x5c9401
cmp dword [ecx + 0x210], 0
je 0x5c93ac
push esi
push ecx
call fcn.0058bbf0
add esp, 8
jmp 0x5c9401
cmp dword [0x6d4c38], 0
je 0x5c93f7
mov eax, dword [0x6ecdc0]
test eax, eax
je 0x5c93c8
push eax
call dword [0x6d4c88]
add esp, 4
push esi
call dword [0x6d4c64]
sub dword [0x6ecd58], eax
dec dword [0x6ecd7c]
push esi
call dword [0x6d4c5c]
mov eax, dword [0x6ecdc0]
add esp, 8
test eax, eax
je 0x5c9401
push eax
call dword [0x6d4c90]
jmp 0x5c93fe
push esi
call dword [0x6d4c5c]
add esp, 4
mov esi, dword [esp + 0x104]
cmp dword [esp + 0x8c], 0
jne 0x5c9250
lea eax, [esi + 0x24]
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x28]
test dword [ebp + 0x50], 0x201
jne 0x5c944b
push esi
push ebx
call fcn.00574ce0
add esp, 8
test eax, eax
je 0x5c944b
cmp byte [ebp + 0x57], 0
jne 0x5c8edb
mov ebp, dword [esi + 0x20]
mov dword [esp + 0x10], ebp
jmp 0x5c944f
mov ebp, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x30], eax
cmp dword [ebp], eax
jle 0x5c9ce1
nop
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea esi, [eax*8]
mov eax, dword [esi + ebp + 0x38]
add esi, ebp
or eax, dword [esi + 0x3c]
jne 0x5c9493
mov eax, dword [esi + 8]
test eax, eax
je 0x5c9493
push dword [esi + 4]
push 0x6a5e52
push eax
push 0x14
push ebx
call fcn.005a05a0
add esp, 0x14
mov eax, dword [esi + 0x14]
mov dword [esp + 0x40], eax
test eax, eax
je 0x5c9cc3
cmp dword [esi + 0x18], 0
jne 0x5c9cc3
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push dword [esp + 0x108]
call fcn.00581a90
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x14]
add dword [ebx + 0xe4], eax
test dword [ecx + 0x50], 0x1000
jne 0x5c9512
test dword [esi + 0x28], 0x100
je 0x5c94f6
mov eax, dword [esi + 0x44]
cmp byte [eax + 0x12], 0
je 0x5c9512
cmp dword [eax], 2
jge 0x5c9512
push dword [esp + 0x30]
mov eax, dword [esp + 0x38]
push ebp
push dword [eax]
push dword [esp + 0x4c]
push ebx
call fcn.00594bf0
mov ecx, dword [esp + 0x3c]
add esp, 0x14
test dword [ecx + 0x50], 0x4000000
jne 0x5c966d
test dword [esi + 0x28], 0x108
jne 0x5c966d
mov edx, dword [esi + 0x14]
mov eax, edx
mov dword [esp + 0x3c], edx
test edx, edx
je 0x5c956a
nop dword [eax]
test byte [eax + 4], 9
jne 0x5c966d
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x5c955a
cmp byte [eax], 0x87
jne 0x5c966d
cmp dword [eax + 0x44], 0
jne 0x5c966d
mov eax, ecx
test eax, eax
jne 0x5c9540
mov ebp, dword [edx + 0x30]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], ecx
test ebp, ebp
je 0x5c95dd
mov ecx, dword [ebp]
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x5c95dd
add ebp, 0x18
nop dword [eax]
movzx eax, word [ebp]
test ax, ax
je 0x5c95cd
add eax, 0xffff
mov edx, 0x3f
cmp ax, 0x40
jae 0x5c95ac
movzx edx, ax
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
or dword [esp + 0x44], eax
or dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
add ebp, 0x14
sub ecx, 1
mov dword [esp + 0x14], ecx
jne 0x5c9590
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x10]
movsx ecx, word [ecx + 0x22]
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x5c966d
mov edi, dword [esp + 0x3c]
xor ebp, ebp
mov ebx, ebp
xor ecx, ecx
cmp ebx, 0x3f
jae 0x5c961a
mov eax, ebx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x44]
cmovae edx, ecx
jmp 0x5c961f
mov edx, SysReAllocString
and edx, dword [esp + 0x60]
and ecx, eax
or ecx, edx
jne 0x5c9658
mov eax, edi
nop dword [eax + eax]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + ebp + 8]
cmp byte [ecx], 0x79
je 0x5c964d
and dword [ecx + 4], 0xfff7dfff
mov byte [ecx], 0x79
or dword [eax + 4], 0x1000000
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x5c9630
mov eax, dword [esp + 0x44]
inc ebx
add ebp, 0x14
cmp ebx, dword [esp + 0x14]
jl 0x5c95f8
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x100]
mov eax, dword [ebx + 0x104]
mov edx, dword [esp + 0x30]
mov ebp, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 8]
mov dword [ebx + 0x104], eax
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
add ecx, 8
mov dword [esp + 0x18], ecx
test dword [ecx + 0x28], 0x100
je 0x5c96c0
mov eax, dword [ecx + 0x44]
mov dl, byte [eax + 0x12]
test dl, dl
je 0x5c9783
cmp dword [eax], 2
jl 0x5c96bc
cmp dl, 2
jne 0x5c9783
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
test byte [eax + 0x2c], 0x40
jne 0x5c9787
mov eax, dword [ebx]
test dword [eax + 0x50], 0x2000000
mov eax, dword [esp + 0x10]
jne 0x5c9787
push dword [eax]
lea eax, [edx + 1]
push eax
push ecx
push dword [esp + 0x1c]
call fcn.00583710
add esp, 0x10
test eax, eax
jne 0x5c9783
cmp dword [esp + 0x30], eax
jne 0x5c974e
mov eax, dword [esp + 0x10]
cmp dword [eax], 1
je 0x5c9721
test byte [eax + 0x74], 2
jne 0x5c9721
mov ecx, dword [esp + 0x104]
test dword [ecx + 4], 0x10000000
jne 0x5c9783
mov ebp, dword [edi + 0x6c]
inc dword [ebx + 0x2c]
inc ebp
mov edx, dword [ebx + 0x2c]
mov dword [esi + 0x1c], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5c97c9
push ebp
push 0
push edx
push 0xb
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5c97fb
mov ecx, dword [esp + 0x104]
test dword [ecx + 4], 0x10000000
jne 0x5c9783
mov eax, dword [esp + 0x18]
add eax, 0x24
test byte [eax], 0x22
jne 0x5c9783
nop word [eax + eax]
test ebp, ebp
je 0x5c9721
sub eax, 0x48
dec ebp
cmp dword [eax - 0x10], 0
jne 0x5c9783
test byte [eax], 0x22
je 0x5c9770
mov eax, dword [esp + 0x10]
test dword [esi + 0x28], 0x100
je 0x5c9976
mov ebp, dword [esi + 0x44]
mov edx, dword [ebp + 4]
test edx, edx
jle 0x5c9976
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x5c98cb
push 0
push edx
push eax
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5c9901
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x1c]
push esi
push str.CO_ROUTINE___S
push 1
push ebx
mov dword [esi + 0x18], ebp
mov byte [esp + 0x90], 0xd
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call fcn.005dc1e0
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x54]
push ebx
call fcn.005c8dd0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
push dword [esi + 0x1c]
mov eax, dword [esp + 0xac]
or dword [esi + 0x28], 0x20
push edi
mov dword [esi + 0x20], eax
call fcn.005d3720
mov eax, dword [edi]
add esp, 0x24
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5c98a7
mov eax, 0x6ecf98
mov dword [eax], edx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
jmp 0x5c9c78
mov eax, dword [edi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov dword [eax], edx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
jmp 0x5c9c78
mov ebx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebp + 0xc]
mov esi, dword [esi + 0x2c]
cmp esi, edx
je 0x5c9965
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5c9933
push 0
push edx
push esi
push 0x73
push edi
call fcn.005815b0
mov ecx, dword [esp + 0x54]
add esp, 0x14
mov ax, word [ebp + 0x10]
mov word [ecx + 2], ax
jmp 0x5c9c78
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x40]
mov ax, word [ebp + 0x10]
mov word [ecx + 2], ax
jmp 0x5c9c78
push dword [esp + 0x30]
push 0
push esi
push eax
call fcn.00583710
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x5c9a64
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x5c99ed
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x5c99b7
push 0
push edx
push eax
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5c99ed
mov ebx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 0x2c]
mov esi, dword [esi + 0x2c]
cmp dword [edi + 0x70], ecx
jg 0x5c9a1e
push 0
push edx
push esi
push 0x73
push edi
call fcn.005815b0
mov eax, dword [ebp + 0x14]
add esp, 0x14
mov ecx, dword [esp + 0x40]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x5c9c78
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x40]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x5c9c78
inc dword [ebx + 0x2c]
xor ebp, ebp
mov eax, dword [ebx + 0x2c]
mov dword [esi + 0x1c], eax
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x14], edx
cmp dword [edi + 0x70], edx
jg 0x5c9a91
push ebp
push ebp
push ebp
push 9
push edi
call fcn.005815b0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x14], edx
jmp 0x5c9abb
mov ebx, dword [esp + 0x100]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], ebp
mov dword [eax + ecx*4 + 0x10], ebp
lea eax, [edx + 1]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x28]
or eax, 0x10
mov dword [esi + 0x28], eax
test al, 8
jne 0x5c9b24
mov ebp, dword [edi + 0x6c]
cmp dword [edi + 0x70], ebp
jg 0x5c9aeb
push 0
push 0
push 0
push 0xf
push edi
call fcn.005815b0
add esp, 0x14
mov ebp, eax
jmp 0x5c9b24
lea eax, [ebp + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ebp*4]
mov eax, dword [edi + 0x68]
add ecx, ebp
mov dword [eax + ecx*4], 0xf
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x2c]
push esi
push str.MATERIALIZE___S
push 1
push ebx
mov byte [esp + 0x90], 0xc
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call fcn.005dc1e0
lea eax, [esp + 0x90]
push eax
push dword [esp + 0x54]
push ebx
call fcn.005c8dd0
mov eax, dword [esp + 0x5c]
add esp, 0x1c
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
test ebp, ebp
je 0x5c9bbc
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5c9baa
mov eax, 0x6ecf90
jmp 0x5c9bb9
mov eax, dword [edi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ebp, dword [esp + 0x14]
mov ecx, dword [edi + 0x6c]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x18], eax
lea edx, [ebp + 1]
cmp dword [edi + 0x70], ecx
jg 0x5c9be3
push 0
push edx
push eax
push 0x43
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5c9c19
mov ebx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5c9c2b
mov eax, 0x6ecf90
jmp 0x5c9c3a
mov eax, dword [edi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
mov eax, dword [esi + 0x28]
and eax, 0x108
cmp eax, 0x100
jne 0x5c9c78
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x40]
mov ax, word [eax + 2]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x57], 0
jne 0x5c8edb
mov esi, dword [esp + 0x104]
lea eax, [esp + 0x14]
push eax
push esi
mov dword [esp + 0x1c], 0
call fcn.00581a90
mov eax, dword [ebx + 0xe4]
add esp, 8
sub eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
mov dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x104], eax
jmp 0x5c9cca
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ebp]
jl 0x5c9460
lea eax, [esi + 0x24]
jmp 0x5c9ce5
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov cl, byte [esi + 4]
mov ebp, dword [esi + 0x1c]
and cl, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 4]
and al, 9
mov dword [esp + 0x44], ebp
mov byte [esp + 0x27], cl
mov byte [esp + 0xc4], cl
cmp al, 1
jne 0x5c9d5c
push 0xffffffffffffffff
push ebp
push dword [esp + 0x28]
call fcn.005b0c50
add esp, 0xc
test eax, eax
jne 0x5c9d5c
cmp dword [esi + 0x44], eax
jne 0x5c9d5c
and dword [esi + 4], 0xfffffffe
push eax
push ebp
push dword [esp + 0x30]
call fcn.005b0cf0
mov dword [esp + 0x38], eax
add esp, 0xc
or dword [esi + 4], 8
mov dword [esi + 0x28], eax
mov al, 2
mov byte [esp + 0x27], al
mov byte [esp + 0xc4], al
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5c9da9
push dword [ebp]
push 0
push eax
push ebx
call fcn.005bbab0
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffff8
push ecx
push 0
lea eax, [edx + 1]
mov dword [esp + 0xf4], edx
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov eax, dword [ebp]
inc ecx
add eax, ecx
push eax
push edx
push 0x76
push edi
call fcn.005d2c80
add esp, 0x2c
mov dword [esp + 0xe4], eax
jmp 0x5c9db4
mov dword [esp + 0xe4], 0xffffffff
mov eax, dword [esp + 0x108]
cmp byte [eax], 0xc
jne 0x5c9e6f
push dword [ebp]
push dword [eax + 4]
push 0x76
push edi
call fcn.005d2bc0
add esp, 0x10
test dword [esi + 4], 0x800
je 0x5c9e6f
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
lea esi, [eax - 1]
test esi, esi
jle 0x5c9e47
mov ebx, dword [esp + 0x28]
lea ebp, [esi + esi*4]
shl ebp, 2
nop dword [eax]
test byte [ecx + ebp + 0x14], 0x40
jne 0x5c9e40
mov eax, dword [ecx + ebp + 8]
test eax, eax
je 0x5c9e1d
push eax
push ebx
call fcn.005afab0
mov ecx, dword [esp + 0x4c]
add esp, 8
mov eax, dword [ecx + ebp + 0xc]
test eax, eax
je 0x5c9e33
push eax
push ebx
call fcn.005a9be0
mov ecx, dword [esp + 0x4c]
add esp, 8
mov eax, dword [ecx]
dec esi
dec eax
sub ebp, 0x14
mov dword [ecx], eax
test esi, esi
jg 0x5c9e00
mov ebx, dword [esp + 0x100]
xor edx, edx
test eax, eax
jle 0x5c9e68
mov ebp, dword [esp + 0x44]
add ecx, 8
test byte [ecx + 0xc], 0x40
jne 0x5c9e5f
mov eax, dword [ecx]
mov byte [eax], 0x79
inc edx
add ecx, 0x14
cmp edx, dword [ebp]
jl 0x5c9e54
mov esi, dword [esp + 0x104]
dec dword [ebx + 0x38]
test dword [esi + 4], 0x4000
mov eax, dword [ebx + 0x38]
mov dword [esp + 0xf8], eax
jne 0x5c9e8e
mov ecx, 0x140
mov word [esi + 2], cx
cmp dword [esi + 0x3c], 0
je 0x5c9e9f
push eax
push esi
push ebx
call fcn.00572e50
add esp, 0xc
cmp dword [esi + 8], 0
jne 0x5c9ed3
mov ecx, dword [esp + 0xe4]
test ecx, ecx
js 0x5c9ed3
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5c9ebf
mov eax, 0x6ecf90
jmp 0x5c9ec8
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
or byte [esp + 0xf0], 1
mov byte [eax], 0x77
test byte [esi + 4], 1
je 0x5c9f3c
mov esi, dword [ebx + 0x28]
push 0xfffffffffffffff8
push 0
push 0
lea eax, [esi + 1]
mov dword [esp + 0xd4], esi
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x110]
push dword [eax + 0x1c]
push ebx
call fcn.005bbab0
add esp, 0x10
push eax
push 0
push 0
push esi
push 0x76
push edi
call fcn.005d2c80
mov dword [esp + 0xe8], eax
add esp, 0x1c
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x5c9f31
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov esi, dword [esp + 0x104]
mov al, 3
jmp 0x5c9f3e
xor al, al
cmp dword [esp + 0x50], 0
mov ebp, dword [esp + 0x2c]
mov byte [esp + 0xc5], al
mov dword [esp + 0x60], eax
jne 0x5ca22d
test ebp, ebp
jne 0x5ca22d
mov cx, word [esi + 4]
mov eax, 0x4000
and cx, ax
mov edx, 0x100
xor eax, eax
cmp byte [esp + 0x27], al
cmovne eax, edx
or cx, ax
movzx esi, cx
mov ecx, dword [esp + 0x104]
mov ebp, dword [ecx + 0x44]
test ebp, ebp
je 0x5c9f9f
push ecx
push ebx
call fcn.005e7520
mov ecx, dword [esp + 0x10c]
add esp, 8
movsx eax, word [ecx + 2]
push eax
push esi
push ecx
push dword [ecx + 0x1c]
push dword [esp + 0x30]
push dword [esp + 0x60]
push dword [esp + 0x28]
push ebx
call fcn.005e1ba0
mov esi, eax
add esp, 0x20
test esi, esi
je 0x5c8edb
mov ecx, dword [esp + 0x104]
movzx eax, word [esi + 0x34]
cmp ax, word [ecx + 2]
jge 0x5c9fdd
mov word [ecx + 2], ax
cmp byte [esp + 0x27], 0
je 0x5ca001
mov cl, byte [esi + 0x2f]
mov edx, dword [esp + 0x60]
test cl, cl
movzx edx, dl
movzx eax, cl
cmovne edx, eax
mov dword [esp + 0x60], edx
mov byte [esp + 0xc5], dl
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x5ca061
mov al, byte [esi + 0x2d]
xor edx, edx
test al, al
movsx ecx, al
cmovns edx, ecx
test byte [esi + 0x30], 4
mov dword [esp + 0xd4], edx
jne 0x5ca028
mov eax, dword [esi + 0x1c]
jmp 0x5ca048
movzx eax, byte [esi + 0x2c]
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + esi + 0x2d0], 0
je 0x5ca041
mov eax, dword [esi + 0x1c]
jmp 0x5ca048
mov eax, dword [eax + esi + 0x2a8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xec], eax
xor eax, eax
cmp edx, dword [ecx]
cmove ecx, eax
mov dword [esp + 0xd0], ecx
mov eax, dword [esp + 0xe4]
test eax, eax
js 0x5ca07a
test ecx, ecx
jne 0x5ca07a
push eax
push edi
call fcn.005d30c0
add esp, 8
test ebp, ebp
je 0x5ca1f2
mov ebp, dword [ebx + 0x38]
inc dword [ebx + 0x2c]
lea ecx, [ebp - 1]
sub ebp, 2
push ecx
mov dword [esp + 0x18], ecx
lea eax, [ebp - 1]
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
push eax
push esi
push dword [esp + 0x110]
mov dword [esp + 0x4c], eax
push ebx
call fcn.005e79b0
mov esi, dword [esp + 0x2c]
push esi
push 0
push 9
push edi
call fcn.005d2bc0
mov ecx, dword [edi + 0xc]
add esp, 0x24
mov edx, dword [esp + 0x14]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5ca0e3
push edx
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5ca0ec
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
push esi
push ebp
push dword [esp + 0x110]
lea eax, [esp + 0xd0]
mov dword [esp + 0xf8], 0
push eax
lea eax, [esp + 0xe0]
push eax
push 0xffffffffffffffff
push dword [esp + 0x11c]
push ebx
call fcn.0059b7f0
mov ecx, dword [edi + 0xc]
add esp, 0x20
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5ca13c
push ebp
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5ca145
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + ebp*4], eax
push dword [esp + 0x3c]
push 0x43
push edi
call fcn.005d2b60
mov ecx, dword [edi + 0xc]
add esp, 0xc
not esi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5ca175
push esi
push edi
push ecx
call fcn.00598020
mov ebp, dword [esp + 0x110]
add esp, 0xc
jmp 0x5ca185
mov ebp, dword [esp + 0x104]
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
cmp byte [esp + 0x60], 3
jne 0x5ca1a1
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.005dc1e0
add esp, 0x10
cmp dword [esp + 0xd0], 0
je 0x5ca1ca
push dword [esp + 0x108]
mov eax, dword [esp + 0x48]
push dword [eax]
lea eax, [esp + 0xd8]
push eax
push ebp
push ebx
call fcn.0057f9a0
add esp, 0x14
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xf8]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5cbe08
push edx
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5cbe11
push dword [esi + 0x20]
mov ebp, dword [esp + 0x108]
lea eax, [esp + 0xc8]
push dword [esi + 0x1c]
push dword [esp + 0x110]
push eax
lea eax, [esp + 0xe0]
push eax
push 0xffffffffffffffff
push ebp
push ebx
call fcn.0059b7f0
push esi
call fcn.005e5270
add esp, 0x24
jmp 0x5ca185
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], 0
test ebp, ebp
je 0x5ca331
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x5ca26e
add ecx, 0x1a
nop dword [eax]
xor edx, edx
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], dx
test eax, eax
jg 0x5ca260
mov eax, dword [ebp]
test eax, eax
jle 0x5ca286
lea ecx, [ebp + 0x1a]
xor edx, edx
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], dx
test eax, eax
jg 0x5ca278
cmp word [esi + 2], 0x42
jle 0x5ca296
mov eax, 0x42
mov word [esi + 2], ax
mov esi, dword [esp + 0x20]
test esi, esi
je 0x5ca337
mov eax, dword [ebp]
cmp eax, dword [esi]
jne 0x5ca337
xor edx, edx
test eax, eax
jle 0x5ca2cf
lea ecx, [ebp + 0x10]
sub esi, ebp
mov al, byte [ecx + esi]
lea ecx, [ecx + 0x14]
and al, 1
inc edx
mov byte [ecx - 0x14], al
mov eax, dword [ebp]
cmp edx, eax
jl 0x5ca2b8
mov esi, dword [esp + 0x20]
cmp eax, dword [esi]
jne 0x5ca337
xor ebp, ebp
test eax, eax
jle 0x5ca327
mov eax, dword [esp + 0x2c]
add esi, 0x10
lea ecx, [eax + 8]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
nop
mov al, byte [eax + esi]
cmp al, byte [esi]
jne 0x5ca337
push 0xffffffffffffffff
push dword [esi - 8]
push dword [ecx]
push 0
call fcn.005af600
add esp, 0x10
test eax, eax
jne 0x5ca337
mov eax, dword [esp + 0x2c]
inc ebp
mov ecx, dword [esp + 0x14]
add esi, 0x14
add ecx, 0x14
mov dword [esp + 0x14], ecx
cmp ebp, dword [eax]
mov eax, dword [esp + 0x18]
jl 0x5ca2f0
mov dword [esp + 0x54], 1
jmp 0x5ca337
xor eax, eax
mov word [esi + 2], ax
mov eax, dword [ebx + 0x38]
push 0
dec eax
push 0x2c
push dword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov dword [ebx + 0x38], eax
call fcn.005a9cf0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x5ca3bd
push 0x2c
push 0
push ebp
call fcn.00621d30
mov eax, dword [0x6d4d38]
add esp, 0xc
test eax, eax
je 0x5ca41b
push 0x12c
call eax
mov ecx, dword [ebx]
add esp, 4
test eax, eax
je 0x5ca41d
push ecx
call fcn.005bd9c0
add esp, 4
mov eax, dword [ebp + 0x14]
mov esi, dword [ebx]
test eax, eax
je 0x5ca3a2
push eax
push esi
call fcn.005a9be0
add esp, 8
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x5ca3b3
push eax
push esi
call fcn.005a9be0
add esp, 8
push ebp
push esi
call fcn.005a9be0
add esp, 8
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x57], 0
jne 0x5c8edb
mov eax, dword [esp + 0x104]
xorps xmm0, xmm0
mov esi, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x10]
movlpd qword [esp + 0x8c], xmm0
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x9c], xmm0
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebp
test esi, esi
je 0x5ca45f
mov eax, dword [esi]
jmp 0x5ca461
mov ecx, dword [ebx]
push 0
push 0xc
test ecx, ecx
je 0x5ca430
push ecx
call fcn.005a9cf0
add esp, 0xc
jmp 0x5ca438
call fcn.005bcc80
add esp, 8
mov ecx, eax
test ecx, ecx
je 0x5ca38f
mov eax, dword [ebx + 0x8c]
mov dword [ecx], eax
mov dword [ebx + 0x8c], ecx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], 0x568000
jmp 0x5ca3bd
xor eax, eax
push dword [esp + 0x44]
mov word [ebp + 2], ax
lea eax, [esp + 0x84]
push eax
mov dword [ebp + 0x10], esi
call fcn.005ac5f0
push dword [esp + 0x28]
lea eax, [esp + 0x8c]
push eax
call fcn.005ac5f0
mov ecx, dword [esp + 0x8c]
add esp, 0x10
test ecx, ecx
je 0x5ca558
test esi, esi
je 0x5ca502
mov eax, dword [esp + 0x104]
xorps xmm0, xmm0
mov dword [esp + 0xc0], eax
movlpd qword [esp + 0xb0], xmm0
movlpd qword [esp + 0xb8], xmm0
mov eax, dword [eax + 0x2c]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 0x581960
test eax, eax
je 0x5ca4f4
push eax
lea eax, [esp + 0xac]
push eax
call fcn.005e1800
mov ecx, dword [esp + 0x84]
add esp, 8
mov eax, dword [esp + 0x104]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x80]
mov dword [esp + 0xac], 0x5691e0
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xa8]
push ecx
push eax
mov dword [esp + 0xb8], 0x5e1aa0
mov dword [esp + 0xbc], 0x5e1a90
mov dword [esp + 0xc0], 0
mov dword [esp + 0xb0], 0
call fcn.005e1800
add esp, 8
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
mov eax, dword [esp + 0x104]
cmp dword [eax + 0x28], 0
jne 0x5ca645
cmp dword [eax + 0x2c], 0
jne 0x5ca645
cmp dword [ebp + 0x24], 1
jne 0x5ca645
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x5ca63a
cmp dword [esi], 1
jne 0x5ca63a
test dword [eax + 4], 0x1000000
jne 0x5ca63a
mov ecx, dword [esp + 0x28]
test dword [ecx + 0x50], 0x10000
jne 0x5ca63a
mov eax, dword [eax + 8]
push 0x68d1cc
push eax
mov dword [esp + 0x20], eax
call fcn.005cdec0
add esp, 8
test eax, eax
jne 0x5ca5f2
push dword [esi + 8]
call fcn.005acb70
add esp, 4
mov byte [esp + 0x1f], 1
neg eax
sbb al, al
and eax, 0xffffff02
mov dword [esp + 0x14], eax
jmp 0x5ca611
push 0x68d1d0
push dword [esp + 0x1c]
call fcn.005cdec0
add esp, 8
test eax, eax
jne 0x5ca63a
mov byte [esp + 0x14], 1
mov byte [esp + 0x1f], 2
push 0
push esi
push dword [esp + 0x30]
call fcn.005b0cf0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xa4], ecx
test ecx, ecx
je 0x5ca63f
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
mov byte [ecx + 0x10], al
jmp 0x5ca64a
mov byte [esp + 0x1f], 0
mov esi, dword [esp + 0x2c]
jmp 0x5ca64a
mov byte [esp + 0x1f], 0
lea eax, [esp + 0x80]
push eax
push ebp
call fcn.00569120
mov ecx, dword [esp + 0x30]
add esp, 8
cmp byte [ecx + 0x57], 0
jne 0x5cbe21
test esi, esi
je 0x5cb789
cmp dword [ebp + 0x24], 1
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], 0
jne 0x5ca756
mov eax, dword [ebp + 0x20]
cmp dword [eax + 8], 0
jl 0x5ca756
mov eax, dword [eax]
test eax, eax
je 0x5ca756
test dword [eax + 4], 0x1000
jne 0x5ca756
mov eax, dword [eax + 0x14]
test eax, eax
je 0x5ca756
mov eax, dword [eax + 8]
test eax, eax
je 0x5ca6d7
push 0
push 0
push eax
push ecx
call fcn.00579190
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov esi, eax
jmp 0x5ca6d9
xor esi, esi
push 0
push dword [esp + 0x30]
push ecx
call fcn.005b0cf0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x5c], ecx
test ecx, ecx
jne 0x5ca703
push esi
push dword [ebx]
call fcn.005b0a00
add esp, 8
mov dword [esp + 0x5c], eax
jmp 0x5ca745
mov eax, dword [ecx]
lea edx, [eax + 1]
cmp dword [ecx + 4], edx
jge 0x5ca71f
push esi
push ecx
push dword [ebx]
call fcn.005b0940
add esp, 0xc
mov dword [esp + 0x5c], eax
jmp 0x5ca745
movups xmm0, xmmword [0x68af20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x5c]
mov dword [eax], edx
mov eax, dword [0x68af30]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [ecx + 8], esi
mov esi, dword [esp + 0x2c]
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp + 4], eax
inc dword [ebx + 0x28]
push dword [ebp + 0x18]
push 0
push esi
push ebx
call fcn.005bbab0
mov ecx, dword [edi + 0x6c]
add esp, 0x10
movzx edx, word [ebp + 2]
mov esi, dword [ebp + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
cmp dword [edi + 0x70], ecx
jg 0x5ca79c
push 0
push edx
push esi
push 0x77
push edi
call fcn.005815b0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x3c], edx
jmp 0x5ca7d2
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + ecx*4], 0x77
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
mov eax, edx
cmp byte [ecx + 0x57], 0
je 0x5ca800
cmp dword [ecx + 0x210], 0
jne 0x5ca83a
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5ca83a
add dword [edx], 0xffffffff
jne 0x5ca83a
push edx
push dword [edx + 0xc]
call fcn.005a9e10
add esp, 8
jmp 0x5ca83a
test edx, edx
jns 0x5ca808
mov eax, dword [edi + 0x6c]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x5ca82b
mov ecx, dword [esp + 0x34]
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.005ee540
add esp, 0x10
jmp 0x5ca83a
mov edx, dword [esp + 0x34]
test edx, edx
je 0x5ca83a
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov eax, dword [ebx + 0x2c]
mov esi, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x68], eax
lea edx, [eax + 1]
mov eax, dword [ebx + 0x38]
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x74], eax
lea ecx, [edx + 2]
dec eax
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x38], eax
mov dword [esp + 0x30], ecx
add ecx, dword [esi]
mov dword [esp + 0x78], eax
mov dword [ebx + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x6c], eax
mov eax, dword [esi]
add eax, ecx
mov dword [ebx + 0x2c], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5ca894
push 0
push edx
push 0
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5ca8ca
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x30]
add edx, dword [esi]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5ca8ee
mov eax, dword [esp + 0x30]
push edx
inc eax
push eax
push 0
push 0x4b
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5ca929
mov ebx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x2c]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
inc ebx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5ca948
push 0
push dword [esp + 0x7c]
push dword [esp + 0x38]
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5ca97b
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x54]
mov edx, 0x80
neg ecx
mov eax, 0x40
push 0
sbb ecx, ecx
and ecx, 0x200
cmp byte [esp + 0x2b], 2
cmove eax, edx
or cx, ax
or cx, word [esp + 0x18]
movzx eax, cx
push eax
push dword [esp + 0x10c]
mov eax, dword [esp + 0x68]
push eax
push esi
push dword [esp + 0x60]
push dword [esp + 0x28]
push ebx
call fcn.005e1ba0
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x4c], ecx
test ecx, ecx
jne 0x5ca9ef
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5cbe1d
push eax
push dword [esp + 0x2c]
call fcn.00579c60
add esp, 8
jmp 0x5cbe1d
cmp dword [ebx + 0x48], 0
lea esi, [ebx + 0x48]
je 0x5caa5a
cmp word [ebp + 2], 0
lea eax, [ebx + 0x48]
mov esi, dword [ebp + 0x1c]
mov dword [ebp + 0x18], esi
mov dword [esp + 0x18], eax
jbe 0x5caa41
mov eax, dword [esp + 0x104]
mov eax, dword [eax + 0x28]
mov ecx, dword [eax]
dec ecx
test esi, esi
jle 0x5caa35
mov edx, dword [ebp + 0x14]
add edx, 0xe
movsx eax, word [edx]
lea edx, [edx + 0x10]
cmp eax, ecx
cmovle eax, ecx
mov ecx, eax
sub esi, 1
jne 0x5caa23
lea eax, [ecx + 1]
mov word [ebp + 2], ax
lea esi, [ebx + 0x48]
jmp 0x5caa45
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x80]
push eax
push ebp
call fcn.00569120
mov ecx, dword [esp + 0x54]
add esp, 8
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x18]
add dword [ebx + 0x2c], eax
movzx eax, byte [ecx + 0x2f]
mov dword [esp + 0x18], eax
mov al, byte [ecx + 0x2d]
xor ecx, ecx
test al, al
movsx edx, al
mov eax, dword [esp + 0x2c]
cmovns ecx, edx
cmp ecx, dword [eax]
jne 0x5caa94
mov dword [esp + 0x70], 0
jmp 0x5cae1b
cmp byte [esp + 0x27], 0
je 0x5caaad
mov eax, dword [esp + 0x104]
test byte [eax + 4], 1
mov eax, str.DISTINCT
je 0x5caab2
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.005dc1e0
mov eax, dword [esp + 0x3c]
add esp, 0x10
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x70], 1
mov eax, dword [eax]
mov esi, eax
mov dword [esp + 0x38], eax
mov edx, eax
mov dword [esp + 0x48], esi
jle 0x5cab20
mov esi, dword [ebp + 0x14]
mov edi, eax
mov ebx, dword [ebp + 0x18]
add esi, 0xe
nop
movsx ecx, word [esi]
lea eax, [edi + 1]
cmp ecx, edx
lea esi, [esi + 0x10]
cmovl eax, edi
mov edi, eax
lea eax, [edx + 1]
cmovl eax, edx
mov edx, eax
sub ebx, 1
jne 0x5caaf0
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
cmp esi, 1
jne 0x5cab4b
mov al, byte [ebx + 0x13]
test al, al
jne 0x5cab36
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x10], eax
jmp 0x5cab72
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
mov dword [esp + 0x10], eax
jmp 0x5cab75
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x10], edx
cmp esi, ecx
jg 0x5cab66
lea eax, [esi + edx]
sub ecx, esi
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], ecx
jmp 0x5cab75
mov eax, dword [ebx + 0x2c]
lea ecx, [eax + 1]
add eax, esi
mov dword [esp + 0x10], ecx
mov dword [ebx + 0x2c], eax
push 0
push 0
push dword [esp + 0x18]
push dword [esp + 0x38]
push ebx
call fcn.005acd50
xor esi, esi
mov byte [ebp], 1
add esp, 0x14
mov dword [esp + 0x64], esi
cmp dword [ebp + 0x18], esi
jle 0x5cac30
mov edi, dword [esp + 0x38]
add edi, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x50], edx
nop dword [eax + eax]
mov ecx, dword [ebp + 0x14]
movsx eax, word [ecx + edx + 0xe]
cmp eax, dword [esp + 0x38]
jl 0x5cac1b
cmp dword [ebx + 8], 0
je 0x5cac16
mov esi, dword [ecx + edx + 4]
push edi
push esi
push ebx
call fcn.005ae170
mov edx, eax
add esp, 0xc
cmp edx, edi
je 0x5cac0e
push esi
call fcn.005b1750
add esp, 4
test eax, eax
je 0x5cabfb
test dword [eax + 4], 0x400000
jne 0x5cabf4
cmp byte [eax], 0xb0
jne 0x5cabfb
mov eax, 0x50
jmp 0x5cac00
mov eax, 0x51
push edi
push edx
push eax
push dword [ebx + 8]
call fcn.005d2bc0
add esp, 0x10
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
inc dword [esp + 0x38]
inc edi
inc esi
add edx, 0x10
mov dword [esp + 0x64], esi
mov dword [esp + 0x50], edx
cmp esi, dword [ebp + 0x18]
jl 0x5cabb0
mov edi, dword [esp + 0x58]
mov byte [ebp], 0
mov al, byte [ebx + 0x13]
test al, al
jne 0x5cac44
mov esi, dword [ebx + 0x2c]
inc esi
mov dword [ebx + 0x2c], esi
jmp 0x5cac53
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov esi, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cac72
mov edx, dword [esp + 0x48]
push esi
push edx
push dword [esp + 0x18]
push 0x61
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5caca1
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 4]
cmp dword [edi + 0x70], ecx
jg 0x5cacc0
push 0
push esi
push edx
push 0x8b
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cacef
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x58]
mov dword [eax + ecx*4], 0x8b
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
test esi, esi
je 0x5cad07
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x5cad07
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], esi
inc byte [ebx + 0x13]
mov esi, dword [esp + 0x48]
cmp esi, 1
jne 0x5cad2e
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x5cad3d
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x5cad3d
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], ecx
inc byte [ebx + 0x13]
jmp 0x5cad3d
cmp esi, dword [ebx + 0x1c]
jle 0x5cad3d
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], eax
push dword [esp + 0x4c]
call fcn.005e5270
mov eax, dword [ebx + 0x28]
add esp, 4
mov dword [ebp + 8], eax
inc dword [ebx + 0x28]
mov dword [esp + 0x48], eax
mov al, byte [ebx + 0x13]
test al, al
jne 0x5cad66
mov edx, dword [ebx + 0x2c]
inc edx
mov dword [ebx + 0x2c], edx
jmp 0x5cad75
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov edx, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x38], edx
cmp dword [edi + 0x70], ecx
jg 0x5cad94
push esi
push edx
push dword [esp + 0x50]
push 0x79
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cadc6
mov ebx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x79
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 4]
cmp dword [edi + 0x70], ecx
jg 0x5cade5
push 0
push dword [esp + 0x44]
push edx
push 0x22
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cae14
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x22
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [ebp + 1], 1
lea esi, [ebx + 0x48]
cmp dword [esi], 0
je 0x5cae83
xorps xmm0, xmm0
mov dword [esp + 0xc0], 0
xor ecx, ecx
movq qword [esp + 0xb8], xmm0
movups xmmword [esp + 0xa8], xmm0
mov dword [esp + 0xac], 0x568100
mov dword [esp + 0x50], ecx
cmp dword [ebp + 0x24], ecx
jle 0x5cae83
xor esi, esi
mov eax, dword [ebp + 0x20]
mov eax, dword [esi + eax]
test eax, eax
je 0x5cae76
push eax
lea eax, [esp + 0xac]
push eax
call fcn.005e1800
mov ecx, dword [esp + 0x58]
add esp, 8
inc ecx
add esi, 0x18
mov dword [esp + 0x50], ecx
cmp ecx, dword [ebp + 0x24]
jl 0x5cae57
cmp dword [esp + 0x54], 0
je 0x5caee6
mov eax, dword [esp + 0x28]
test byte [eax + 0x50], 4
jne 0x5caee6
cmp dword [esp + 0x70], 0
jne 0x5caea5
mov eax, dword [esp + 0x4c]
test byte [eax + 0x30], 8
je 0x5caee6
mov edx, dword [edi]
mov dword [esp + 0xd0], 0
cmp byte [edx + 0x57], 0
jne 0x5caee6
mov eax, dword [esp + 0xe4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.0057e980
add esp, 0xc
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
cmp dword [esp + 0x70], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x54], ecx
je 0x5caf41
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x38]
cmp dword [edi + 0x70], ecx
jg 0x5caf16
push dword [esp + 0x48]
push esi
push edx
push 0x85
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5caf41
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x38], edx
cmp dword [eax], edx
jle 0x5cb03d
mov esi, dword [esp + 0x6c]
add eax, 8
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x70], 0
je 0x5cafbb
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5caf87
push esi
push edx
push dword [esp + 0x50]
push 0x5e
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb018
mov ebx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5cb01c
mov byte [ebp], 1
cmp dword [ebx + 8], 0
je 0x5cb024
mov edx, dword [esp + 0x10]
push esi
mov eax, dword [edx]
push eax
push ebx
mov dword [esp + 0x5c], eax
call fcn.005ae170
mov edx, eax
add esp, 0xc
cmp edx, esi
je 0x5cb018
push dword [esp + 0x50]
call fcn.005b1750
add esp, 4
test eax, eax
je 0x5cb005
test dword [eax + 4], 0x400000
jne 0x5caffe
cmp byte [eax], 0xb0
jne 0x5cb005
mov eax, 0x50
jmp 0x5cb00a
mov eax, 0x51
push esi
push edx
push eax
push dword [ebx + 8]
call fcn.005d2bc0
add esp, 0x10
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
inc edx
add eax, 0x14
inc esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], eax
cmp edx, dword [ecx]
jl 0x5caf62
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x5cb047
inc dword [ecx]
mov edx, dword [edi + 0x6c]
mov esi, dword [eax]
cmp dword [edi + 0x70], edx
jg 0x5cb06b
mov eax, dword [esp + 0x30]
push esi
push dword [esp + 0x70]
inc eax
push eax
push 0x5a
push edi
call fcn.005815b0
add esp, 0x14
mov edx, eax
jmp 0x5cb0a6
mov ebx, dword [esp + 0x30]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
inc ebx
mov edi, dword [esp + 0x58]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5cb0d2
cmp dword [eax + 0x210], 0
jne 0x5cb108
mov eax, dword [esp + 0x34]
test eax, eax
je 0x5cb108
add dword [eax], 0xffffffff
jne 0x5cb108
push eax
push dword [eax + 0xc]
call fcn.005a9e10
add esp, 8
jmp 0x5cb108
test edx, edx
jns 0x5cb0da
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x34]
je 0x5cb0fd
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.005ee540
add esp, 0x10
jmp 0x5cb108
test ecx, ecx
je 0x5cb108
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf8
mov esi, dword [edi + 0x6c]
lea edx, [esi + 1]
cmp dword [edi + 0x70], esi
jg 0x5cb124
push edx
push 0
push edx
push 0xe
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb153
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov ebx, dword [esp + 0x100]
mov dword [edi + 0x6c], edx
mov dword [eax + ecx*4], 0xe
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 8]
mov eax, dword [esp + 0x2c]
mov ecx, dword [edx + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
cmp dword [edx + 0x70], ecx
jg 0x5cb180
push eax
mov eax, dword [esp + 0x34]
inc eax
push eax
push dword [esp + 0x74]
push 0x4f
push edx
call fcn.005815b0
add esp, 0x14
jmp 0x5cb1b8
mov edi, dword [esp + 0x58]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
inc edx
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb1d9
mov eax, dword [esp + 0x20]
push 0
push dword [esp + 0x78]
inc eax
push eax
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb214
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x100]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb233
push 0
push dword [esp + 0x44]
push dword [esp + 0x28]
push 0x3b
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb266
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4], 0x3b
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb285
push 0
push dword [esp + 0x7c]
push dword [esp + 0x38]
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb2b8
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x78]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x5cb2ca
mov eax, 0x6ecf90
jmp 0x5cb2d3
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
push dword [esp + 0x18]
mov esi, dword [esp + 0x6c]
push ebp
push esi
push ebx
mov dword [eax + 8], edx
call fcn.005ebe80
mov ecx, dword [edi + 0x6c]
add esp, 0x10
cmp dword [edi + 0x70], ecx
jg 0x5cb303
push 0
push esi
push 1
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb332
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x70], 0
je 0x5cb386
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x54]
cmp dword [edi + 0x70], ecx
jg 0x5cb359
push 0
push esi
push edx
push 0x25
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb3c5
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5cb3c5
push dword [esp + 0x4c]
call fcn.005e5270
mov edx, dword [edi]
add esp, 4
cmp byte [edx + 0x57], 0
jne 0x5cb3c5
mov eax, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.0057e980
add esp, 0xc
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x5cb3da
push eax
push dword [esp + 0x2c]
call fcn.00579c60
add esp, 8
mov esi, dword [esp + 0x20]
mov ecx, dword [edi + 0x6c]
inc esi
cmp dword [edi + 0x70], ecx
jg 0x5cb3fb
push 0
push dword [esp + 0x78]
push esi
push 0xa
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb42a
mov edx, dword [esp + 0x74]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb447
push 0
push dword [esp + 0x44]
push 0
push 9
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb47a
mov edx, dword [esp + 0x40]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x3c], ecx
cmp dword [edi + 0x70], ecx
jg 0x5cb49b
push 0
push dword [esp + 0x24]
push 1
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb4ce
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb4e8
push 0
push 0
push esi
push 0x43
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb517
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x74]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5cb535
push edx
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5cb53e
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
lea edx, [eax + 2]
lea esi, [eax + 1]
cmp dword [edi + 0x70], eax
jg 0x5cb560
push 0
push edx
push dword [esp + 0x70]
push 0x3b
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb593
mov ebx, dword [esp + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [edi + 0x6c], esi
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [eax + ecx*4], 0x3b
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb5b2
mov eax, dword [esp + 0x20]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb5ed
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x100]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push ebp
push ebx
call fcn.0057afc0
push 0x10
push esi
push dword [esp + 0x8c]
push ebx
call fcn.005afdc0
push dword [esp + 0x54]
lea eax, [esp + 0xe0]
push esi
push dword [esp + 0x128]
push eax
lea eax, [esp + 0xf8]
push eax
push 0xffffffffffffffff
push dword [esp + 0x134]
push ebx
call fcn.0059b7f0
mov ecx, dword [edi + 0x6c]
add esp, 0x38
cmp dword [edi + 0x70], ecx
jg 0x5cb651
mov eax, dword [esp + 0x20]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb685
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
inc edx
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x78]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5cb6a3
push edx
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5cb6ac
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
push ebp
push ebx
call fcn.00597df0
mov ecx, dword [edi + 0x6c]
add esp, 8
cmp dword [edi + 0x70], ecx
jg 0x5cb6d3
push 0
push dword [esp + 0x6c]
push 0
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb706
mov edx, dword [esp + 0x68]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb723
push 0
push 0
push dword [esp + 0x38]
push 0x43
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cb756
mov edx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp word [esp + 0x14], 0
je 0x5cb779
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x5cb779
mov eax, dword [ebp + 0x20]
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.0057b800
add esp, 0x10
mov ebp, dword [esp + 0x104]
mov esi, dword [esp + 0x40]
jmp 0x5cbde7
mov ecx, dword [esp + 0x104]
cmp dword [ecx + 0x24], 0
jne 0x5cbb35
mov edx, dword [ecx + 0x1c]
cmp dword [edx], 1
jne 0x5cbb35
mov eax, dword [ecx + 0x20]
cmp dword [eax], 1
jne 0x5cbb35
cmp dword [eax + 0x1c], 0
jne 0x5cbb35
cmp dword [ebp + 0x24], 1
jne 0x5cbb35
cmp dword [ecx + 0x2c], 0
jne 0x5cbb35
mov ecx, dword [eax + 0x18]
cmp byte [ecx + 0x2b], 0
jne 0x5cbb35
mov edx, dword [edx + 8]
cmp byte [edx], 0xa8
jne 0x5cbb35
cmp dword [edx + 0x28], ebp
jne 0x5cbb35
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x5cbb35
test dword [edx + 4], 0x1000004
jne 0x5cbb35
test ecx, ecx
je 0x5cbb35
mov esi, dword [ecx + 0x3c]
mov edx, 0xffff8000
mov dword [esp + 0x4c], edx
mov dword [esp + 0x34], ecx
test esi, esi
je 0x5cb87c
mov eax, dword [ebx]
xor edx, edx
mov edi, dword [esp + 0x104]
mov dword [esp + 0x4c], edx
mov eax, dword [eax + 0x10]
mov ecx, dword [edi + 0x20]
add eax, 0xc
mov edi, dword [esp + 0x58]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x34], ecx
cmp dword [eax], esi
je 0x5cb87c
mov edi, dword [esp + 0x104]
mov ecx, dword [edi + 0x20]
mov edi, dword [esp + 0x58]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x34], ecx
nop word [eax + eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], esi
jne 0x5cb870
mov dword [esp + 0x4c], edx
mov eax, dword [ebx + 0x28]
xor esi, esi
mov dword [esp + 0x38], eax
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x14]
mov ecx, ebx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x80]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [ecx + 0x5c]
mov ecx, edx
mov dword [esp + 0x3c], eax
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x3c]
test ecx, eax
jne 0x5cb8d9
mov eax, dword [esp + 0x54]
bts ecx, edx
mov dword [eax + 0x5c], ecx
cmp edx, 1
jne 0x5cb8de
push eax
call fcn.005bddc0
add esp, 4
jmp 0x5cb906
cmp edx, 1
je 0x5cb906
mov eax, dword [ebx]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], 0
je 0x5cb906
mov eax, dword [esp + 0x34]
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push ebx
call fcn.0058a980
add esp, 0x14
mov ecx, dword [esp + 0x34]
test byte [ecx + 0x1c], 0x80
je 0x5cb927
mov esi, dword [ecx + 8]
test esi, esi
je 0x5cb927
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x5cb927
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x5cb917
mov eax, dword [esp + 0x104]
mov eax, dword [eax + 0x20]
test byte [eax + 0x30], 1
jne 0x5cb969
mov eax, dword [ecx + 8]
test eax, eax
je 0x5cb969
nop
test byte [eax + 0x38], 4
jne 0x5cb962
movzx edx, word [eax + 0x30]
cmp dx, word [ecx + 0x28]
jge 0x5cb962
cmp dword [eax + 0x24], 0
jne 0x5cb962
test esi, esi
je 0x5cb960
cmp dx, word [esi + 0x30]
jge 0x5cb962
mov esi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5cb940
test esi, esi
je 0x5cb982
mov eax, dword [esi + 0x2c]
push esi
push ebx
mov dword [esp + 0x1c], eax
call fcn.005bbb40
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cb9a8
mov edx, dword [esp + 0x4c]
push 1
push edx
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x44]
push edx
push 0x70
push edi
call fcn.00567cb0
add esp, 0x18
jmp 0x5cb9db
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xfd70
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 1
mov edx, dword [esp + 0x18]
test edx, edx
je 0x5cba32
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5cba07
cmp dword [eax + 0x210], 0
jne 0x5cba32
add dword [edx], 0xffffffff
jne 0x5cba32
push edx
push dword [edx + 0xc]
call fcn.005a9e10
add esp, 8
jmp 0x5cba32
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax + 1], 0
je 0x5cba2b
push 0xfffffffffffffff8
push edx
push eax
push edi
call fcn.005ee540
add esp, 0x10
jmp 0x5cba32
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x18]
add dword [ebx + 0x2c], eax
mov edx, dword [ebp + 0x18]
add edx, dword [ebp + 0xc]
mov ecx, dword [edi + 0x6c]
mov ebp, dword [esp + 0x38]
cmp dword [edi + 0x70], ecx
jg 0x5cba65
push 0
push edx
push ebp
push 0x62
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cba90
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x62
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cbaaa
push 0
push 0
push ebp
push 0x7a
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cbad9
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x7a
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [ebx + 0xdb], 2
jne 0x5cbda8
mov ecx, dword [esp + 0x34]
test esi, esi
je 0x5cbb06
test byte [ecx + 0x1c], 0x80
je 0x5cbafd
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x5cbb06
mov eax, dword [esi]
mov edx, 1
jmp 0x5cbb0d
xor edx, edx
mov eax, 0x6a5e52
push eax
test edx, edx
mov eax, str._USING_COVERING_INDEX
mov esi, 0x6a5e52
cmove eax, esi
push eax
push dword [ecx]
push str.SCAN__s_s_s
push 0
push ebx
call fcn.005dc1e0
add esp, 0x18
jmp 0x5cbda8
cmp dword [ebp + 0x1c], 0
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x14], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x18], 0
je 0x5cbbe9
xor edx, edx
test esi, esi
jle 0x5cbb8c
mov ecx, dword [ebp + 0x20]
mov ebx, esi
mov eax, dword [ecx]
test dword [eax + 4], 0x1000000
jne 0x5cbb7b
mov eax, dword [ecx + 4]
mov esi, ebx
test byte [eax + 4], 0x20
jne 0x5cbb85
inc edx
add ecx, 0x18
mov esi, ebx
cmp edx, ebx
jl 0x5cbb65
mov ebx, dword [esp + 0x100]
cmp edx, esi
jne 0x5cbc0d
inc dword [ebx + 0x2c]
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x14], edx
cmp dword [edi + 0x70], ecx
jg 0x5cbbb8
push 0
push edx
push 0
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cbc0d
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5cbc0d
cmp esi, 1
jne 0x5cbc0d
mov eax, dword [ebp + 0x20]
cmp dword [eax + 8], 0
jl 0x5cbc0d
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x3c], eax
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x24]
add eax, dword [ebp + 0x18]
add dword [ebx + 0x2c], eax
push ebp
push ebx
call fcn.00597df0
movzx eax, byte [esp + 0x27]
or ax, word [esp + 0x20]
push 0
movzx eax, ax
push eax
push dword [esp + 0x114]
push dword [esp + 0x50]
push dword [esp + 0xbc]
push dword [esp + 0x68]
push dword [esp + 0x30]
push ebx
call fcn.005e1ba0
mov esi, eax
add esp, 0x28
test esi, esi
je 0x5cbe1d
movzx eax, byte [esi + 0x2f]
push eax
push ebp
push dword [esp + 0x1c]
mov dword [esp + 0x24], eax
push ebx
call fcn.005ebe80
mov ecx, dword [esp + 0x28]
add esp, 0x10
test ecx, ecx
je 0x5cbc97
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x5cbc97
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.0057b800
add esp, 0x10
mov edx, dword [esp + 0x14]
test edx, edx
je 0x5cbcef
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x5cbcb9
push 0
push edx
push 1
push 0x47
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cbcef
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esp + 0x1f], 0
je 0x5cbd98
test byte [esi + 0x30], 4
je 0x5cbd98
cmp byte [esi + 0x2d], 0
je 0x5cbd98
movzx edx, byte [esi + 0x2c]
sub edx, 1
js 0x5cbd34
lea ecx, [edx + edx*2]
shl ecx, 5
add ecx, esi
nop
mov eax, dword [ecx + 0x348]
test byte [eax + 0x2c], 4
jne 0x5cbd51
sub ecx, 0x60
sub edx, 1
jns 0x5cbd20
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x5cbd62
push 0
push edx
push 0
push 9
push edi
call fcn.005815b0
add esp, 0x14
jmp 0x5cbd98
push dword [ecx + 0x308]
push edi
call fcn.005dc590
add esp, 8
jmp 0x5cbd98
mov ebx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push esi
call fcn.005e5270
push ebp
push ebx
call fcn.0057afc0
add esp, 0xc
mov esi, dword [esp + 0x40]
push 0x10
push esi
push dword [esp + 0x84]
mov dword [esp + 0xdc], 0
push ebx
call fcn.005afdc0
mov ebp, dword [esp + 0x114]
push esi
push esi
push dword [esp + 0x120]
push 0
push 0
push 0xffffffffffffffff
push ebp
push ebx
call fcn.0059b7f0
add esp, 0x30
mov ecx, dword [edi + 0xc]
not esi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5ca17c
push esi
push edi
push ecx
call fcn.00598020
add esp, 0xc
jmp 0x5ca185
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
xor eax, eax
cmp dword [ebx + 0x24], eax
setg al
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x5c8edb
push eax
push ecx
call fcn.00579c60
add esp, 8
jmp 0x5c8edb
push dword [esp + 0x108]
push ebp
push ebx
call fcn.0058c410
add esp, 0xc
mov esi, eax
cmp dword [ebp + 0x38], 0
jne 0x5cbe61
push ebx
call fcn.005dc240
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xec
ret
mov esi, dword [ebx + 8]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5cbe96
pop esi
mov eax, 0x6ecf90
pop edi
pop ebp
mov eax, dword [eax + 8]
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x58]
pop ebx
add esp, 0xec
ret
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x68]
pop esi
pop edi
pop ebp
lea eax, [ecx + edx*4]
mov eax, dword [eax + 8]
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x58]
pop ebx
add esp, 0xec
ret
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0xec
ret