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

Disassembly:
sub esp, 0xf4
push ebx
mov ebx, dword [esp + 0xfc]
push ebp
push edi
mov dword [esp + 0x3c], 1
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [esp + 0xa8], 0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x70], edi
test edi, edi
jne 0x574115
cmp dword [ebx + 0x80], edi
jne 0x574106
test byte [eax + 0x50], 8
jne 0x574106
mov byte [ebx + 0x17], 1
push ebx
call fcn.0057f600
add esp, 4
mov dword [esp + 0x70], eax
mov edi, eax
mov ebp, dword [esp + 0x108]
test ebp, ebp
je 0x57721a
cmp dword [ebx + 0x24], 0
jne 0x57721a
push 0
push 0
push 0
push 0x15
push ebx
call fcn.00540670
add esp, 0x14
test eax, eax
jne 0x57721a
mov eax, dword [esp + 0x10c]
cmp byte [eax], 6
ja 0x57417e
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x574170
push eax
push 0x552840
push ebx
call fcn.0056a810
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.00577720
add esp, 0xc
cmp dword [ebx + 0x24], 0
jne 0x5741d3
mov esi, dword [ebp + 4]
test esi, 0x800000
je 0x574201
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [eax + 8]
push ecx
mov dword [esp + 0x20], ecx
call fcn.0053a120
add esp, 8
test eax, eax
je 0x5741f8
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x5741c4
mov eax, dword [ecx + 0x10]
mov eax, dword [eax]
push eax
push str.target_object_alias_may_not_appear_in_FROM_clause:__s
push ebx
call fcn.0054d2c0
add esp, 0xc
mov ecx, dword [ebx + 0xe8]
test ecx, ecx
jne 0x5771d1
pop esi
pop edi
xor eax, eax
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x38]
pop ebp
pop ebx
add esp, 0xf4
ret
and esi, 0xff7fffff
mov dword [ebp + 4], esi
mov eax, dword [esp + 0x110]
cmp byte [eax], 9
jne 0x574217
push ebp
push ebx
call fcn.0055dd10
add esp, 8
push ebp
push ebx
call fcn.00597b00
add esp, 8
test eax, eax
jne 0x5741d3
mov eax, dword [ebp + 4]
xorps xmm0, xmm0
mov esi, dword [ebp + 0x20]
xor ecx, ecx
shr eax, 3
and eax, 1
mov dword [esp + 0x44], esi
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x30]
movups xmmword [esp + 0xd8], xmm0
mov dword [esp + 0x1c], eax
movups xmmword [esp + 0xe8], xmm0
mov dword [esp + 0xd8], eax
movq qword [esp + 0xf8], xmm0
mov dword [esp + 0x14], ecx
cmp dword [ebp + 0x34], ecx
jne 0x5745ef
cmp ecx, dword [esi]
jge 0x574639
lea eax, [ecx + ecx*8]
mov edx, dword [esi + eax*8 + 0x18]
lea ebp, [esi + eax*8]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x48], eax
mov al, byte [ebp + 0x2c]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x4c], edx
test al, 0x48
je 0x5743a4
movzx eax, al
and eax, 0x40
push eax
mov eax, dword [esp + 0x110]
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.00552000
add esp, 0xc
test eax, eax
je 0x57439c
mov eax, dword [esp + 0x30]
test dword [eax + 0x50], 0x2000
jne 0x57439c
mov al, byte [ebp + 0x2c]
test al, 8
je 0x574301
test al, 0x10
je 0x5742e5
and al, 0xf7
mov byte [ebp + 0x2c], al
jmp 0x574301
and al, 0xd7
mov byte [ebp + 0x2c], al
mov eax, dword [esp + 0x10c]
push 0
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.0059ad90
add esp, 0xc
test byte [ebp + 0x2c], 0x40
mov ecx, dword [esp + 0x14]
je 0x5743a0
mov edx, dword [esi]
lea ebp, [ecx + 1]
cmp ebp, edx
jge 0x574373
mov ebx, dword [esp + 0x44]
lea eax, [ebp*8]
mov edi, dword [esp + 0x10c]
add eax, ebp
lea esi, [esi + eax*8]
add esi, 0x2c
mov al, byte [esi]
test al, 0x10
je 0x574356
test al, 8
je 0x574342
and al, 0xef
mov byte [esi], al
jmp 0x574356
push 1
push dword [esi + 8]
and al, 0xcf
mov byte [esi], al
push dword [edi + 0x24]
call fcn.0059ad90
add esp, 0xc
mov edx, dword [ebx]
inc ebp
add esi, 0x48
cmp ebp, edx
jl 0x574332
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x108]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
add edx, 0xffffffff
js 0x57447a
lea eax, [edx + edx*8]
lea ecx, [eax*8 + 0x2c]
add ecx, esi
and byte [ecx], 0xbf
test byte [ecx], 0x10
jne 0x574398
sub ecx, 0x48
sub edx, 1
jns 0x574388
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x5745d9
mov eax, dword [eax + 0x1c]
movsx edx, word [edx + 0x22]
mov eax, dword [eax]
cmp edx, eax
jne 0x57461e
test dword [ebp + 0x30], 0x100
je 0x5743d7
mov eax, dword [ebp + 0x4c]
cmp byte [eax + 0x12], 0
je 0x5745d9
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x10c]
mov eax, dword [edx + 4]
test al, 8
jne 0x5745e0
mov edx, dword [edx + 0x30]
mov dword [esp + 0x10], edx
test edx, edx
je 0x57457c
cmp dword [ebp + 0x30], 0
jne 0x57440b
cmp dword [esi], 1
jle 0x574564
mov edx, dword [esp + 0x48]
cmp dword [edx + 0x3c], 0
jne 0x574564
test eax, 0x8000000
jne 0x574564
test dword [ebp + 4], 0x8000000
jne 0x574564
mov eax, dword [esp + 0x30]
test dword [eax + 0x50], 0x40000
jne 0x574564
mov ecx, dword [ebx]
test ecx, ecx
je 0x57450d
mov eax, 0xc
cmp ax, word [ecx + 0x134]
jbe 0x574490
cmp dword [ecx + 0x130], 0
jne 0x574483
inc dword [ecx + 0x144]
push 0
push eax
push ecx
call fcn.004f5d90
add esp, 0xc
jmp 0x574519
mov ebp, dword [esp + 0x10]
jmp 0x5743a0
cmp byte [ecx + 0x57], 0
je 0x5744fe
xor edx, edx
jmp 0x57451b
mov edx, dword [ecx + 0x158]
test edx, edx
je 0x5744aa
mov eax, dword [edx]
mov dword [ecx + 0x158], eax
inc dword [ecx + 0x140]
jmp 0x57451b
mov edx, dword [ecx + 0x154]
test edx, edx
je 0x5744c4
mov eax, dword [edx]
mov dword [ecx + 0x154], eax
inc dword [ecx + 0x140]
jmp 0x57451b
mov edx, dword [ecx + 0x150]
test edx, edx
je 0x5744de
mov eax, dword [edx]
mov dword [ecx + 0x150], eax
inc dword [ecx + 0x140]
jmp 0x57451b
mov edx, dword [ecx + 0x14c]
test edx, edx
je 0x5744f8
mov eax, dword [edx]
inc dword [ecx + 0x140]
mov dword [ecx + 0x14c], eax
jmp 0x57451b
inc dword [ecx + 0x148]
push 0
push 0xc
push ecx
call fcn.004f5d90
add esp, 0xc
jmp 0x574519
push 0
push 0xc
call fcn.005660f0
add esp, 8
mov edx, eax
test edx, edx
je 0x574548
mov eax, dword [ebx + 0x8c]
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x8c], edx
mov dword [edx + 4], eax
mov eax, dword [esp + 0x48]
mov dword [edx + 8], 0x552840
mov dword [eax + 0x30], 0
jmp 0x57457c
mov eax, dword [esp + 0x10]
push eax
push dword [ebx]
call fcn.004fac60
mov eax, dword [esp + 0x50]
add esp, 8
mov dword [eax + 0x30], 0
jmp 0x57457c
test ecx, ecx
jne 0x57457c
test dword [ebp + 4], 0x40000
je 0x57457c
cmp dword [esi], 1
je 0x5745e0
test byte [esi + 0x74], 0x22
jne 0x5745e0
push dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
push eax
push ebp
push ebx
call fcn.004ff380
add esp, 0x10
test eax, eax
je 0x5745a4
cmp dword [ebx + 0x24], 0
jne 0x5741d3
or eax, 0xffffffff
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x44], esi
cmp byte [eax + 0x57], 0
jne 0x5741d3
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x14]
cmp byte [eax], 8
jbe 0x5745e0
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xd8], eax
jmp 0x5745e0
mov ebp, dword [esp + 0x10c]
inc ecx
cmp dword [ebp + 0x34], 0
mov dword [esp + 0x14], ecx
je 0x574272
push dword [esp + 0x110]
push ebp
push ebx
call fcn.00529940
add esp, 0xc
mov esi, eax
cmp dword [ebp + 0x38], 0
jne 0x574611
push ebx
call fcn.00588e50
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xf4
ret
push eax
mov eax, dword [esp + 0x50]
push dword [eax]
push edx
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.0054d2c0
add esp, 0x14
jmp 0x5741d3
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x28], esi
test eax, eax
je 0x574829
cmp byte [eax], 0x2c
mov dword [esp + 0x28], esi
jne 0x574829
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], esi
test dword [eax + 0x50], 0x8000
jne 0x574829
mov eax, dword [ebx]
add eax, 0x57
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x28], esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x98], 0
test eax, eax
je 0x5746ca
cmp dword [eax], 0
jle 0x5746ca
test byte [eax + 0x2c], 0x40
mov dword [esp + 0x9c], 3
jne 0x5746d5
mov dword [esp + 0x9c], 1
push dword [ebp + 0x24]
lea eax, [esp + 0x8c]
push eax
call fcn.004fc740
add esp, 8
cmp dword [esp + 0x90], 0
je 0x57481b
lea eax, [esp + 0x88]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], 0x5335e0
mov dword [esp + 0xb8], 0x577800
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
test eax, eax
je 0x57475a
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.0058fb20
add esp, 8
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0xa0]
mov ecx, dword [eax]
test esi, esi
je 0x57481b
test ecx, ecx
je 0x5747c6
cmp esi, dword [ecx + 0x164]
jae 0x5747b1
cmp esi, dword [ecx + 0x15c]
jb 0x574799
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x57481b
cmp esi, dword [ecx + 0x160]
jb 0x5747b1
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x57481b
cmp dword [ecx + 0x210], 0
je 0x5747c6
push esi
push ecx
call fcn.00528dd0
add esp, 8
jmp 0x57481b
cmp dword [0x645f38], 0
je 0x574811
mov eax, dword [0x64de48]
test eax, eax
je 0x5747e2
push eax
call dword [0x645f88]
add esp, 4
push esi
call dword [0x645f64]
sub dword [0x64dde8], eax
dec dword [0x64de0c]
push esi
call dword [0x645f5c]
mov eax, dword [0x64de48]
add esp, 8
test eax, eax
je 0x57481b
push eax
call dword [0x645f90]
jmp 0x574818
push esi
call dword [0x645f5c]
add esp, 4
cmp dword [esp + 0x94], 0
jne 0x574681
mov esi, dword [esp + 0x30]
test dword [esi + 0x50], 0x201
jne 0x574857
push ebp
push ebx
call fcn.004f5330
add esp, 8
test eax, eax
je 0x574857
cmp byte [esi + 0x57], 0
jne 0x5741d3
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x28], ecx
jmp 0x57485b
mov ecx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [ecx], eax
jle 0x5750b1
nop dword [eax]
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea esi, [ecx + eax*8]
mov eax, dword [esi + 0x38]
or eax, dword [esi + 0x3c]
jne 0x5748a0
mov eax, dword [esi + 8]
test eax, eax
je 0x5748a0
push dword [esi + 4]
push section..rdata
push eax
push 0x14
push ebx
call fcn.00540670
mov ecx, dword [esp + 0x3c]
add esp, 0x14
mov eax, dword [esi + 0x14]
mov dword [esp + 0x34], eax
test eax, eax
je 0x5750a0
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
push ebp
call fcn.0051e340
mov eax, dword [ebx + 0xe4]
add esp, 8
mov ecx, dword [esp + 0x30]
add eax, dword [esp + 0x10]
mov dword [ebx + 0xe4], eax
test dword [ecx + 0x50], 0x1000
jne 0x574916
test dword [esi + 0x28], 0x100
je 0x5748f9
mov eax, dword [esi + 0x44]
cmp byte [eax + 0x12], 0
je 0x574916
cmp dword [eax], 2
jge 0x574916
mov ecx, dword [esp + 0x14]
push ecx
push dword [esp + 0x2c]
push dword [ebp + 0x24]
push dword [esp + 0x40]
push ebx
call fcn.00533ba0
mov ecx, dword [esp + 0x44]
add esp, 0x14
test dword [ecx + 0x50], 0x4000000
jne 0x574a74
test dword [esi + 0x28], 0x108
jne 0x574a74
mov edx, dword [esi + 0x14]
mov eax, edx
mov dword [esp + 0x20], edx
test edx, edx
je 0x57496a
nop dword [eax]
test byte [eax + 4], 9
jne 0x574a74
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x57495a
cmp byte [eax], 0x87
jne 0x574a74
cmp dword [eax + 0x44], 0
jne 0x574a74
mov eax, ecx
test eax, eax
jne 0x574940
mov ebp, dword [edx + 0x30]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], ecx
test ebp, ebp
je 0x5749dd
mov ecx, dword [ebp]
mov dword [esp + 0x10], ecx
test ecx, ecx
jle 0x5749dd
add ebp, 0x18
nop dword [eax]
movzx eax, word [ebp]
test ax, ax
je 0x5749cd
add eax, 0xffff
mov edx, 0x3f
cmp ax, 0x40
jae 0x5749ac
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 + 0x58], eax
or dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x10]
add ebp, 0x14
sub ecx, 1
mov dword [esp + 0x10], ecx
jne 0x574990
mov eax, dword [esp + 0x58]
mov ecx, dword [esi + 0x10]
movsx ecx, word [ecx + 0x22]
mov dword [esp + 0x10], ecx
test ecx, ecx
jle 0x574a6d
mov edi, dword [esp + 0x20]
xor ebp, ebp
mov ebx, ebp
xor ecx, ecx
cmp ebx, 0x3f
jae 0x574a1a
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 + 0x58]
cmovae edx, ecx
jmp 0x574a1f
mov edx, closesocket
and edx, dword [esp + 0x44]
and ecx, eax
or ecx, edx
jne 0x574a58
mov eax, edi
nop dword [eax + eax]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + ebp + 8]
cmp byte [ecx], 0x79
je 0x574a4d
and dword [ecx + 4], 0xfff7dfff
mov byte [ecx], 0x79
or dword [eax + 4], 0x1000000
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x574a30
mov eax, dword [esp + 0x58]
inc ebx
add ebp, 0x14
cmp ebx, dword [esp + 0x10]
jl 0x5749f8
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x108]
mov ebp, dword [esp + 0x10c]
mov eax, dword [ebx + 0x104]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
mov dword [ebx + 0x104], eax
mov eax, dword [ebp + 4]
mov ebp, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
and eax, 0x100
mov dword [esp + 0x18], eax
je 0x574ac6
mov eax, dword [esi + 0x44]
mov cl, byte [eax + 0x12]
test cl, cl
je 0x574cd6
cmp dword [eax], 2
jl 0x574ac2
cmp cl, 2
mov ecx, ebp
jne 0x574cda
jmp 0x574ac6
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
test byte [edx + 0x2c], 0x40
jne 0x574c7f
mov eax, dword [ebx]
test dword [eax + 0x50], 0x2000000
jne 0x574c7f
push dword [edx]
lea eax, [ecx + 1]
push eax
push esi
push edx
call fcn.00520560
mov ecx, dword [esp + 0x24]
add esp, 0x10
test eax, eax
jne 0x574c83
test ecx, ecx
jne 0x574b46
mov edx, dword [esp + 0x28]
cmp dword [edx], 1
je 0x574b20
test byte [edx + 0x74], 2
jne 0x574b20
test dword [esp + 0x10], 0x10000000
jne 0x574c83
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 0x574b7d
push ebp
push 0
push edx
push 0xb
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x574baf
test dword [esp + 0x10], 0x10000000
jne 0x574c83
test byte [esi + 0x24], 0x22
lea eax, [esi + 0x24]
jne 0x574c83
test ebp, ebp
je 0x574b20
sub eax, 0x48
dec ebp
cmp dword [eax - 0x10], 0
jne 0x574c83
test byte [eax], 0x22
je 0x574b61
jmp 0x574c83
mov ebx, dword [esp + 0x108]
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 + 0x98], 0xd
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
call fcn.00588db0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x48]
push ebx
call fcn.005740c0
mov eax, dword [esp + 0x50]
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
push dword [esi + 0x1c]
mov eax, dword [esp + 0xb4]
or dword [esi + 0x28], 0x20
push edi
mov dword [esi + 0x20], eax
call fcn.0057fc70
mov eax, dword [edi]
add esp, 0x24
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x574c5b
mov eax, 0x64e028
mov dword [eax], edx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
jmp 0x57505d
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 0x57505d
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], 0
jne 0x574cda
push ecx
push 0
push esi
push dword [esp + 0x34]
call fcn.00520560
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x574e5c
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x574de5
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x574daf
push 0
push edx
push eax
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x574de5
mov ecx, dword [esp + 0x14]
mov ebp, dword [esi + 0x44]
mov edx, dword [ebp + 4]
test edx, edx
jle 0x574c8a
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x574d04
push 0
push edx
push eax
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x574d3a
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 + 0x108]
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 0x574d9e
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x574d6c
push 0
push edx
push esi
push 0x73
push edi
call fcn.0051dc60
mov ecx, dword [esp + 0x48]
add esp, 0x14
mov ax, word [ebp + 0x10]
mov word [ecx + 2], ax
jmp 0x57505d
mov ebx, dword [esp + 0x108]
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 + 0x34]
mov ax, word [ebp + 0x10]
mov word [ecx + 2], ax
jmp 0x57505d
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 + 0x108]
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 0x574e16
push 0
push edx
push esi
push 0x73
push edi
call fcn.0051dc60
mov eax, dword [ebp + 0x14]
add esp, 0x14
mov ecx, dword [esp + 0x34]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x57505d
mov ebx, dword [esp + 0x108]
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 + 0x34]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x57505d
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 + 0x60], edx
cmp dword [edi + 0x70], edx
jg 0x574e89
push ebp
push ebp
push ebp
push 9
push edi
call fcn.0051dc60
mov edx, eax
add esp, 0x14
mov dword [esp + 0x60], edx
jmp 0x574eb3
mov ebx, dword [esp + 0x108]
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
or dword [esi + 0x28], 0x10
lea eax, [edx + 1]
test byte [esi + 0x28], 8
mov dword [esp + 0x10], eax
mov dword [esi + 0x18], eax
jne 0x574f1d
mov ebp, dword [edi + 0x6c]
cmp dword [edi + 0x70], ebp
jg 0x574ee4
push 0
push 0
push 0
push 0xf
push edi
call fcn.0051dc60
add esp, 0x14
mov ebp, eax
jmp 0x574f1d
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 + 0x98], 0xc
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
call fcn.00588db0
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x48]
push ebx
call fcn.005740c0
mov eax, dword [esp + 0x50]
add esp, 0x1c
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
test ebp, ebp
je 0x574fb5
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x574fa3
mov eax, 0x64e020
jmp 0x574fb2
mov eax, dword [edi + 0x68]
lea ecx, [ebp*4]
add ecx, ebp
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [edi + 0x6c]
mov edx, dword [esi + 0x1c]
mov ebp, dword [esp + 0x10]
cmp dword [edi + 0x70], ecx
jg 0x574fd5
push 0
push ebp
push edx
push 0x43
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x575000
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], ebp
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 0x575012
mov eax, 0x64e020
jmp 0x57501f
mov eax, dword [esp + 0x60]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
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 0x57505d
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 + 0x34]
mov ax, word [eax + 2]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x57], 0
jne 0x5741d3
mov ebp, dword [esp + 0x10c]
lea eax, [esp + 0x10]
push eax
push ebp
mov dword [esp + 0x18], 0
call fcn.0051e340
mov eax, dword [esp + 0x18]
add esp, 8
sub dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x104], eax
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [ecx]
jl 0x574870
mov eax, dword [ebp + 0x24]
mov cl, byte [ebp + 4]
mov esi, dword [ebp + 0x1c]
and cl, 1
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x70], eax
mov eax, dword [ebp + 4]
and al, 9
mov dword [esp + 0x58], esi
mov byte [esp + 0x2f], cl
mov byte [esp + 0xcc], cl
cmp al, 1
jne 0x57512a
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push esi
push ecx
call fcn.005527a0
add esp, 0xc
test eax, eax
jne 0x57512a
cmp dword [ebp + 0x44], eax
jne 0x57512a
and dword [ebp + 4], 0xfffffffe
push eax
push esi
push dword [esp + 0x38]
call fcn.00552860
mov dword [esp + 0x48], eax
add esp, 0xc
or dword [ebp + 4], 8
mov dword [ebp + 0x28], eax
mov al, 2
mov byte [esp + 0x2f], al
mov byte [esp + 0xcc], al
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x575175
push dword [esi]
push 0
push eax
push ebx
call fcn.005649d0
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffff8
push ecx
mov ecx, dword [esp + 0x34]
lea eax, [edx + 1]
mov dword [esp + 0xf8], edx
mov dword [ebx + 0x28], eax
mov eax, dword [esi]
mov ecx, dword [ecx]
push 0
inc ecx
add eax, ecx
push eax
push edx
push 0x76
push edi
call fcn.0057ee90
add esp, 0x2c
mov dword [esp + 0xec], eax
jmp 0x575180
mov dword [esp + 0xec], 0xffffffff
mov eax, dword [esp + 0x110]
cmp byte [eax], 0xc
jne 0x57523b
push dword [esi]
push dword [eax + 4]
push 0x76
push edi
call fcn.0057edd0
add esp, 0x10
test dword [ebp + 4], 0x800
je 0x57523b
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
lea esi, [eax - 1]
test esi, esi
jle 0x57521b
mov ebx, dword [esp + 0x30]
lea ecx, [esi + esi*4]
shl ecx, 2
mov dword [esp + 0x44], ecx
test byte [ecx + edx + 0x14], 0x40
jne 0x575214
mov eax, dword [ecx + edx + 8]
test eax, eax
je 0x5751e9
push eax
push ebx
call fcn.005514d0
mov ecx, dword [esp + 0x4c]
add esp, 8
mov edx, dword [esp + 0x58]
mov eax, dword [ecx + edx + 0xc]
test eax, eax
je 0x575203
push eax
push ebx
call fcn.0054aa60
mov ecx, dword [esp + 0x4c]
add esp, 8
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
dec esi
dec eax
sub ecx, 0x14
mov dword [edx], eax
mov dword [esp + 0x44], ecx
test esi, esi
jg 0x5751c8
mov ebx, dword [esp + 0x108]
xor edx, edx
test eax, eax
jle 0x57523b
mov esi, dword [esp + 0x58]
lea ecx, [esi + 8]
test byte [ecx + 0xc], 0x40
jne 0x575233
mov eax, dword [ecx]
mov byte [eax], 0x79
inc edx
add ecx, 0x14
cmp edx, dword [esi]
jl 0x575228
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebx + 0x38], eax
test dword [ebp + 4], 0x4000
mov dword [esp + 0x100], eax
jne 0x57525b
mov ecx, 0x140
mov word [ebp + 2], cx
cmp dword [ebp + 0x3c], 0
je 0x57526c
push eax
push ebp
push ebx
call fcn.004f3340
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x5752a0
mov ecx, dword [esp + 0xec]
test ecx, ecx
js 0x5752a0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x57528c
mov eax, 0x64e020
jmp 0x575295
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
or byte [esp + 0xf8], 1
mov byte [eax], 0x77
test byte [ebp + 4], 1
je 0x5752fb
mov esi, dword [ebx + 0x28]
push 0xfffffffffffffff8
push 0
push 0
lea eax, [esi + 1]
mov dword [esp + 0xdc], esi
mov dword [ebx + 0x28], eax
push dword [ebp + 0x1c]
push ebx
call fcn.005649d0
add esp, 0x10
push eax
push 0
push 0
push esi
push 0x76
push edi
call fcn.0057ee90
mov dword [esp + 0xf0], eax
add esp, 0x1c
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x5752f7
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov al, 3
jmp 0x5752fd
xor al, al
cmp dword [esp + 0x5c], 0
mov esi, dword [esp + 0x3c]
mov byte [esp + 0xcd], al
mov dword [esp + 0x44], eax
jne 0x575555
test esi, esi
jne 0x575555
xor ecx, ecx
mov eax, 0x100
cmp byte [esp + 0x2f], cl
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [ebp + 4]
and ax, dx
or cx, ax
mov eax, dword [ebp + 0x44]
movzx esi, cx
mov dword [esp + 0x18], eax
test eax, eax
je 0x575354
push ebp
push ebx
call fcn.00595a50
add esp, 8
movsx eax, word [ebp + 2]
push eax
push esi
push ebp
push dword [ebp + 0x1c]
push dword [esp + 0x2c]
push dword [esp + 0x64]
push dword [esp + 0x40]
push ebx
call fcn.00590040
mov esi, eax
add esp, 0x20
test esi, esi
je 0x5741d3
movzx eax, word [esi + 0x34]
cmp ax, word [ebp + 2]
jge 0x57538b
mov word [ebp + 2], ax
cmp byte [esp + 0x2f], 0
je 0x5753af
mov cl, byte [esi + 0x2f]
mov edx, dword [esp + 0x44]
test cl, cl
movzx edx, dl
movzx eax, cl
cmovne edx, eax
mov dword [esp + 0x44], edx
mov byte [esp + 0xcd], dl
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x57540c
mov al, byte [esi + 0x2d]
test al, al
jns 0x5753c2
xor ecx, ecx
jmp 0x5753c5
movsx ecx, al
test byte [esi + 0x30], 4
mov dword [esp + 0xdc], ecx
jne 0x5753d7
mov eax, dword [esi + 0x1c]
jmp 0x5753f7
movzx eax, byte [esi + 0x2c]
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + esi + 0x2d0], 0
je 0x5753f0
mov eax, dword [esi + 0x1c]
jmp 0x5753f7
mov eax, dword [eax + esi + 0x2a8]
mov dword [esp + 0xf4], eax
xor eax, eax
cmp ecx, dword [edx]
cmove edx, eax
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xec]
test eax, eax
js 0x575425
test edx, edx
jne 0x575425
push eax
push edi
call fcn.0057f3b0
add esp, 8
cmp dword [esp + 0x18], 0
je 0x57551b
mov eax, dword [ebx + 0x38]
inc dword [ebx + 0x2c]
lea ecx, [eax - 1]
sub eax, 2
mov dword [esp + 0x10], eax
dec eax
push ecx
mov dword [esp + 0x74], eax
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
push eax
push esi
push ebp
push ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
call fcn.00595ee0
push dword [esp + 0x84]
push 0
push 9
push edi
call fcn.0057edd0
mov ecx, dword [edi + 0xc]
lea esi, [edi + 0xc]
mov edx, dword [esp + 0x3c]
add esp, 0x24
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x575495
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
lea ebp, [edi + 0x6c]
jmp 0x5754a1
mov ecx, dword [ecx + 0x40]
lea ebp, [edi + 0x6c]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
push dword [esp + 0x70]
lea eax, [esp + 0xd0]
mov dword [esp + 0xf8], 0
push dword [esp + 0x14]
push dword [esp + 0x118]
push eax
lea eax, [esp + 0xe8]
push eax
push 0xffffffffffffffff
push dword [esp + 0x124]
push ebx
call fcn.0053b640
mov ecx, dword [esi]
add esp, 0x20
mov edx, dword [esp + 0x10]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5754fa
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
jmp 0x575503
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
push dword [esp + 0x20]
push 0x43
push edi
call fcn.0057ed70
mov edx, dword [esp + 0x7c]
add esp, 0xc
jmp 0x57710d
push dword [esi + 0x20]
lea eax, [esp + 0xd0]
push dword [esi + 0x1c]
push dword [esp + 0x118]
push eax
lea eax, [esp + 0xe8]
push eax
push 0xffffffffffffffff
push ebp
push ebx
call fcn.0053b640
push esi
call fcn.00593560
add esp, 0x24
lea esi, [edi + 0xc]
lea ebp, [edi + 0x6c]
jmp 0x57712f
mov dword [esp + 0x38], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x5c], 0
test esi, esi
je 0x57566e
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x57558f
add ecx, 0x1a
xor edx, edx
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], dx
test eax, eax
jg 0x575581
mov eax, dword [esi]
test eax, eax
jle 0x5755a6
lea ecx, [esi + 0x1a]
xor edx, edx
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], dx
test eax, eax
jg 0x575598
cmp word [ebp + 2], 0x42
jle 0x5755b6
mov eax, 0x42
mov word [ebp + 2], ax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x575674
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x575674
xor edx, edx
add esi, 0x10
test eax, eax
jle 0x575602
mov edi, dword [esp + 0x1c]
mov ecx, esi
mov ebx, dword [esp + 0x3c]
sub edi, ebx
mov al, byte [edi + ecx]
lea ecx, [ecx + 0x14]
and al, 1
inc edx
mov byte [ecx - 0x14], al
mov eax, dword [ebx]
cmp edx, eax
jl 0x5755e1
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x108]
mov ecx, dword [esp + 0x1c]
cmp eax, dword [ecx]
jne 0x575674
mov dword [esp + 0x10], 0
test eax, eax
jle 0x575664
mov edx, dword [esp + 0x1c]
add ecx, 8
sub edx, dword [esp + 0x3c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x18], edx
mov al, byte [esi]
cmp al, byte [edx + esi]
jne 0x575674
push 0xffffffffffffffff
push dword [ecx]
push dword [esi - 8]
push 0
call fcn.00550f00
add esp, 0x10
test eax, eax
jne 0x575674
mov edx, dword [esp + 0x10]
add esi, 0x14
mov eax, dword [esp + 0x3c]
inc edx
mov ecx, dword [esp + 0x60]
add ecx, 0x14
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], ecx
cmp edx, dword [eax]
mov edx, dword [esp + 0x18]
jl 0x575625
mov dword [esp + 0x5c], 1
jmp 0x575674
xor eax, eax
mov word [ebp + 2], ax
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
push 0
push 0x2c
push dword [esp + 0x38]
mov dword [esp + 0x78], eax
call fcn.0054aba0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
test esi, esi
je 0x57571f
push 0x2c
push 0
push esi
call fcn.0042d620
mov eax, dword [ebx]
add esp, 0xc
push 0
push 0xc
test eax, eax
je 0x5756be
push eax
call fcn.0054aba0
add esp, 0xc
jmp 0x5756c6
call fcn.005660f0
add esp, 8
mov ecx, eax
test ecx, ecx
je 0x5756e6
mov eax, dword [ebx + 0x8c]
mov dword [ecx], eax
mov dword [ebx + 0x8c], ecx
mov dword [ecx + 4], esi
mov dword [ecx + 8], 0x4e7560
jmp 0x57571f
mov ecx, dword [esi + 0x14]
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x575701
push ecx
push eax
call fcn.0054aa60
mov eax, dword [esp + 0x18]
add esp, 8
mov ecx, dword [esi + 0x20]
test ecx, ecx
je 0x575712
push ecx
push eax
call fcn.0054aa60
add esp, 8
push esi
push dword [esp + 0x14]
call fcn.0054aa60
add esp, 8
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x57], 0
jne 0x5741d3
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x28]
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x9c], xmm0
movlpd qword [esp + 0xa4], xmm0
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], esi
test ecx, ecx
je 0x575776
mov eax, dword [ecx]
jmp 0x575778
xor eax, eax
push dword [esp + 0x58]
mov word [esi + 2], ax
lea eax, [esp + 0x8c]
push eax
mov dword [esi + 0x10], ecx
call fcn.0054dc80
push dword [esp + 0x24]
lea eax, [esp + 0x94]
push eax
call fcn.0054dc80
mov ecx, dword [esp + 0x80]
add esp, 0x10
test ecx, ecx
je 0x575861
cmp dword [esp + 0x3c], 0
je 0x57580b
mov eax, dword [ebp + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0xb8], xmm0
movlpd qword [esp + 0xc0], xmm0
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], 0x51e1b0
mov dword [esp + 0xc8], ebp
test eax, eax
je 0x575804
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.0058fb20
mov ecx, dword [esp + 0x78]
add esp, 8
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x88]
mov dword [esp + 0xb4], 0x4e87f0
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xb0]
push ecx
push eax
mov dword [esp + 0xc0], 0x58ff50
mov dword [esp + 0xc4], 0x58ff40
mov dword [esp + 0xc8], 0
mov dword [esp + 0xb8], 0
call fcn.0058fb20
add esp, 8
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
cmp dword [ebp + 0x28], 0
jne 0x57594a
cmp dword [ebp + 0x2c], 0
jne 0x57594a
cmp dword [esi + 0x24], 1
jne 0x57594a
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x57594a
cmp dword [eax], 1
jne 0x57594a
test dword [ecx + 4], 0x1000000
jne 0x57594a
mov eax, dword [esp + 0x30]
test dword [eax + 0x50], 0x10000
jne 0x57594a
mov eax, dword [ecx + 8]
push 0x61992c
push eax
mov dword [esp + 0x20], eax
call fcn.005794f0
add esp, 8
test eax, eax
jne 0x5758ff
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x14]
push dword [eax + 8]
call fcn.0054e2b0
add esp, 4
mov byte [esp + 0x27], 1
neg eax
sbb al, al
and eax, 0xffffff02
mov dword [esp + 0x60], eax
jmp 0x57591e
push 0x619930
push dword [esp + 0x1c]
call fcn.005794f0
add esp, 8
test eax, eax
jne 0x57594a
mov byte [esp + 0x60], 1
mov byte [esp + 0x27], 2
mov ecx, dword [esp + 0x10]
push 0
mov eax, dword [ecx + 0x14]
push eax
push dword [esp + 0x38]
call fcn.00552860
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xac], ecx
test ecx, ecx
je 0x57594f
mov eax, dword [esp + 0x60]
mov byte [ecx + 0x10], al
jmp 0x57594f
mov byte [esp + 0x27], 0
lea eax, [esp + 0x88]
push eax
push esi
call fcn.004e8730
mov ecx, dword [esp + 0x38]
add esp, 8
cmp byte [ecx + 0x57], 0
jne 0x5771b3
cmp dword [esp + 0x3c], 0
je 0x576ad1
cmp dword [esi + 0x24], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x10], 0
jne 0x575a5a
mov eax, dword [esi + 0x20]
cmp dword [eax + 8], 0
jl 0x575a5a
mov eax, dword [eax]
test eax, eax
je 0x575a5a
test dword [eax + 4], 0x1000
jne 0x575a5a
mov eax, dword [eax + 0x14]
test eax, eax
je 0x575a5a
mov eax, dword [eax + 8]
test eax, eax
je 0x5759df
push 0
push 0
push eax
push ecx
call fcn.004fa110
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov ebp, eax
jmp 0x5759e1
xor ebp, ebp
push 0
push dword [esp + 0x40]
push ecx
call fcn.00552860
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x68], ecx
test ecx, ecx
jne 0x575a0b
push ebp
push dword [ebx]
call fcn.00552530
add esp, 8
mov dword [esp + 0x68], eax
jmp 0x575a4d
mov eax, dword [ecx]
lea edx, [eax + 1]
cmp dword [ecx + 4], edx
jge 0x575a27
push ebp
push ecx
push dword [ebx]
call fcn.00552470
add esp, 0xc
mov dword [esp + 0x68], eax
jmp 0x575a4d
movups xmm0, xmmword [0x61317c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x68]
mov dword [eax], edx
mov eax, dword [0x61318c]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [ecx + 8], ebp
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x28]
mov dword [esi + 4], eax
inc dword [ebx + 0x28]
push dword [esi + 0x18]
push 0
push dword [esp + 0x44]
push ebx
call fcn.005649d0
mov ecx, dword [edi + 0x6c]
lea ebp, [edi + 0x6c]
movzx edx, word [esi + 2]
add esp, 0x10
mov dword [esp + 0x78], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x60], ecx
cmp dword [edi + 0x70], ecx
jg 0x575aae
push 0
push edx
push eax
push 0x77
push edi
call fcn.0051dc60
mov edx, eax
add esp, 0x14
mov dword [esp + 0x60], edx
jmp 0x575ae5
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x77
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 0x575b13
cmp dword [ecx + 0x210], 0
jne 0x575b49
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x575b49
sub dword [ecx], 1
jne 0x575b49
push ecx
push dword [ecx + 0xc]
call fcn.0054ad00
add esp, 8
jmp 0x575b49
test edx, edx
jns 0x575b1b
mov eax, dword [ebp]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x78]
je 0x575b3e
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.0059d7a0
add esp, 0x10
jmp 0x575b49
test ecx, ecx
je 0x575b49
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf8
mov eax, dword [ebx + 0x2c]
mov edx, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x4c], eax
inc eax
mov dword [esp + 0x1c], eax
lea ecx, [eax + 2]
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebx + 0x2c], ecx
mov dword [esp + 0x80], eax
dec eax
mov dword [ebx + 0x38], eax
mov dword [esp + 0x14], ecx
add ecx, dword [edx]
mov dword [esp + 0x48], eax
mov dword [ebx + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x84], eax
mov eax, dword [edx]
add eax, ecx
mov dword [ebx + 0x2c], eax
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x575bae
push 0
push dword [esp + 0x20]
push 0
push 0x47
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x50]
add esp, 0x14
jmp 0x575be5
mov esi, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp]
add edx, eax
cmp dword [edi + 0x70], ecx
jg 0x575c0b
mov eax, dword [esp + 0x14]
push edx
inc eax
push eax
push 0
push 0x4b
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x575c46
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x108]
lea ecx, [ecx + ecx*4]
mov dword [ebp], eax
inc esi
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x34]
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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x575c65
push 0
push dword [esp + 0x4c]
push dword [esp + 0x1c]
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x575c98
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebp], 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], 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 + 0x5c]
mov edx, pe_nt_image_headers32
neg ecx
mov eax, 0x40
push 0
sbb ecx, ecx
and ecx, 0x200
cmp byte [esp + 0x33], 2
cmove eax, edx
or cx, ax
or cx, word [esp + 0x14]
movzx eax, cx
push eax
push dword [esp + 0x114]
mov eax, dword [esp + 0x74]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x64]
push dword [esp + 0x40]
push ebx
call fcn.00590040
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x50], ecx
test ecx, ecx
jne 0x575d0f
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5771af
push eax
push dword [esp + 0x34]
call fcn.004fac60
add esp, 8
jmp 0x5771af
cmp dword [ebx + 0x48], 0
je 0x575d73
cmp word [esi + 2], 0
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x18], edx
jbe 0x575d5e
mov eax, dword [esp + 0x10c]
mov eax, dword [eax + 0x28]
mov ecx, dword [eax]
dec ecx
test edx, edx
jle 0x575d57
mov edx, dword [esi + 0x14]
add edx, 0xe
xor edi, edi
nop dword [eax + eax]
movsx eax, word [edx]
lea edx, [edx + 0x10]
cmp eax, ecx
cmovle eax, ecx
inc edi
mov ecx, eax
cmp edi, dword [esi + 0x1c]
jl 0x575d40
mov edi, dword [esp + 0x74]
lea eax, [ecx + 1]
mov word [esi + 2], ax
lea eax, [esp + 0x88]
push eax
push esi
call fcn.004e8730
mov ecx, dword [esp + 0x58]
add esp, 8
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x18]
add eax, dword [esi + 0x24]
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 + 0x3c]
cmovns ecx, edx
cmp ecx, dword [eax]
jne 0x575dad
mov dword [esp + 0x7c], 0
jmp 0x57612b
cmp byte [esp + 0x2f], 0
je 0x575dc6
mov eax, dword [esp + 0x10c]
test byte [eax + 4], 1
mov eax, str.DISTINCT
je 0x575dcb
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.00588db0
mov eax, dword [esp + 0x4c]
add esp, 0x10
mov dword [esp + 0x7c], 1
mov edx, dword [eax]
mov ecx, edx
mov eax, dword [esi + 0x18]
mov dword [esp + 0x38], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x40], eax
test eax, eax
jle 0x575e41
mov edi, dword [esi + 0x14]
mov ebp, eax
add edi, 0xe
mov esi, edx
nop dword [eax]
movsx ecx, word [edi]
lea eax, [esi + 1]
cmp ecx, edx
lea edi, [edi + 0x10]
cmovl eax, esi
mov esi, eax
lea eax, [edx + 1]
cmovl eax, edx
mov edx, eax
sub ebp, 1
jne 0x575e10
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp ecx, 1
jne 0x575e74
mov cl, byte [ebx + 0x13]
lea eax, [ebx + 0x13]
mov dword [esp + 0x54], eax
test cl, cl
jne 0x575e60
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x28], eax
jmp 0x575ea1
dec cl
mov byte [eax], cl
movzx eax, cl
mov eax, dword [ebx + eax*4 + 0xa4]
mov dword [esp + 0x28], eax
jmp 0x575ea1
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x28], edx
cmp ecx, dword [ebx + 0x1c]
jg 0x575e8b
sub dword [ebx + 0x1c], ecx
lea eax, [edx + ecx]
mov dword [ebx + 0x20], eax
jmp 0x575e9a
mov eax, dword [ebx + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x28], edx
mov dword [ebx + 0x2c], eax
lea eax, [ebx + 0x13]
mov dword [esp + 0x54], eax
push 0
push 0
push dword [esp + 0x30]
push dword [esp + 0x48]
push ebx
call fcn.0054e530
add esp, 0x14
mov byte [esi], 1
cmp dword [esi + 0x18], 0
mov dword [esp + 0x40], 0
jle 0x575f1d
mov edx, dword [esp + 0x38]
xor ebp, ebp
nop dword [eax]
mov ecx, dword [esi + 0x14]
movsx eax, word [ecx + ebp + 0xe]
cmp eax, edx
jl 0x575ef9
mov eax, dword [esp + 0x28]
add eax, edx
push eax
push dword [ecx + ebp + 4]
push ebx
call fcn.0054e450
mov edx, dword [esp + 0x44]
add esp, 0xc
inc edx
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x40]
lea ecx, [ebx + 0x13]
inc eax
add ebp, 0x10
mov dword [esp + 0x40], eax
cmp eax, dword [esi + 0x18]
jl 0x575ed0
mov edi, dword [esp + 0x74]
mov eax, ecx
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x54], eax
jmp 0x575f20
lea eax, [ebx + 0x13]
mov byte [esi], 0
mov cl, byte [eax]
test cl, cl
jne 0x575f31
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x575f3f
dec cl
mov byte [eax], cl
movzx eax, cl
mov eax, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [ebp]
mov dword [esp + 0x38], eax
cmp dword [edi + 0x70], ecx
jg 0x575f66
mov edx, dword [esp + 0x64]
push eax
push edx
push dword [esp + 0x30]
push 0x61
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x4c]
add esp, 0x14
jmp 0x575f99
mov edx, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp]
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
cmp dword [edi + 0x70], ecx
jg 0x575fc0
push 0
push edx
push eax
push 0x8b
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x4c]
add esp, 0x14
jmp 0x575ff6
mov ebx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x108]
mov dword [eax + ecx*4], 0x8b
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]
test edx, edx
je 0x576010
mov al, byte [ecx]
cmp al, 8
jae 0x576010
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], edx
inc byte [ecx]
mov eax, dword [esp + 0x64]
cmp eax, 1
jne 0x576035
mov edx, dword [esp + 0x28]
test edx, edx
je 0x576044
mov al, byte [ecx]
cmp al, 8
jae 0x576044
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], edx
inc byte [ecx]
jmp 0x576044
cmp eax, dword [ebx + 0x1c]
jle 0x576044
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x20], eax
push dword [esp + 0x50]
call fcn.00593560
mov eax, dword [esp + 0x58]
add esp, 4
mov edx, dword [ebx + 0x28]
mov dword [esi + 8], edx
inc dword [ebx + 0x28]
mov cl, byte [eax]
mov dword [esp + 0x38], edx
test cl, cl
jne 0x57606f
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x57607d
dec cl
mov byte [eax], cl
movzx eax, cl
mov eax, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [ebp]
mov dword [esp + 0x54], eax
cmp dword [edi + 0x70], ecx
jg 0x5760a0
mov edx, dword [esp + 0x64]
push edx
push eax
push dword [esp + 0x40]
push 0x79
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5760d6
mov ebx, dword [esp + 0x108]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x79
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp]
mov edx, dword [esi + 4]
cmp dword [edi + 0x70], ecx
jg 0x5760f5
push 0
push dword [esp + 0x70]
push edx
push 0x22
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576127
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
lea ebp, [edi + 0x6c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
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 [esi + 1], 1
cmp dword [ebx + 0x48], 0
je 0x5761a4
xorps xmm0, xmm0
mov dword [esp + 0xc8], 0
xor edx, edx
movq qword [esp + 0xc0], xmm0
movups xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xb4], 0x4e76b0
mov dword [esp + 0x20], edx
cmp dword [esi + 0x24], edx
jle 0x5761a4
xor ecx, ecx
mov dword [esp + 0x40], ecx
nop dword [eax]
mov eax, dword [esi + 0x20]
mov eax, dword [ecx + eax]
test eax, eax
je 0x576193
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.0058fb20
mov ecx, dword [esp + 0x48]
add esp, 8
mov edx, dword [esp + 0x20]
inc edx
add ecx, 0x18
mov dword [esp + 0x20], edx
mov dword [esp + 0x40], ecx
cmp edx, dword [esi + 0x24]
jl 0x576170
cmp dword [esp + 0x5c], 0
je 0x57620b
mov eax, dword [esp + 0x30]
test byte [eax + 0x50], 4
jne 0x57620b
cmp dword [esp + 0x7c], 0
jne 0x5761c6
mov eax, dword [esp + 0x50]
test byte [eax + 0x30], 8
je 0x57620b
mov edx, dword [edi]
mov dword [esp + 0xd8], 0
cmp byte [edx + 0x57], 0
jne 0x57620b
mov eax, dword [esp + 0xec]
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.004ffce0
mov word [esi], 0xbb
add esp, 0xc
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x7c], 0
mov ecx, dword [ebp]
mov dword [esp + 0x40], ecx
je 0x576270
mov edx, dword [esi + 4]
cmp dword [edi + 0x70], ecx
jg 0x57623a
push dword [esp + 0x38]
push dword [esp + 0x58]
push edx
push 0x85
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576270
mov ebx, dword [esp + 0x108]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x5c], eax
cmp dword [ecx], eax
jle 0x576325
add ecx, 8
mov dword [esp + 0x20], ecx
nop dword [eax]
mov edx, dword [esp + 0x84]
add edx, eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x54], edx
je 0x5762f4
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x5762bf
push edx
push eax
push dword [esp + 0x40]
push 0x5e
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576303
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x576303
push edx
mov byte [esi], 1
push dword [ecx]
push ebx
call fcn.0054e450
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x3c]
inc eax
mov ecx, dword [esp + 0x20]
add ecx, 0x14
mov dword [esp + 0x5c], eax
mov dword [esp + 0x20], ecx
cmp eax, dword [edx]
jl 0x576290
mov ecx, edx
mov eax, dword [esp + 0x78]
test eax, eax
je 0x57632f
inc dword [eax]
mov edx, dword [ebp]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
cmp dword [edi + 0x70], edx
jg 0x57635a
push eax
push dword [esp + 0x88]
mov eax, dword [esp + 0x1c]
inc eax
push eax
push 0x5a
push edi
call fcn.0051dc60
add esp, 0x14
mov edx, eax
jmp 0x57639c
mov esi, dword [esp + 0x14]
lea eax, [edx + 1]
mov ebx, dword [esp + 0x108]
lea ecx, [edx + edx*4]
mov dword [ebp], eax
inc esi
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x34]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x5763c8
cmp dword [eax + 0x210], 0
jne 0x5763fe
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x5763fe
sub dword [ecx], 1
jne 0x5763fe
push ecx
push dword [ecx + 0xc]
call fcn.0054ad00
add esp, 8
jmp 0x5763fe
test edx, edx
jns 0x5763d0
mov edx, dword [ebp]
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 + 0x78]
je 0x5763f3
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.0059d7a0
add esp, 0x10
jmp 0x5763fe
test ecx, ecx
je 0x5763fe
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf8
mov eax, dword [ebp]
mov dword [esp + 0x5c], eax
lea edx, [eax + 1]
cmp dword [edi + 0x70], eax
jg 0x57641e
push edx
push 0
push edx
push 0xe
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x57644a
mov esi, dword [esp + 0x34]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [ebp], 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 + 0x3c]
mov ecx, dword [edx + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
cmp dword [edx + 0x70], ecx
jg 0x57647a
push eax
mov eax, dword [esp + 0x18]
inc eax
push eax
push dword [esp + 0x8c]
push 0x4f
push edx
call fcn.0051dc60
add esp, 0x14
jmp 0x5764b8
mov ebx, dword [esp + 0x108]
lea eax, [ecx + 1]
mov dword [edx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x84]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x14]
inc edx
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x5764dc
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x84]
inc eax
push eax
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576517
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + ecx*4]
mov dword [ebp], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x80]
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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576536
push 0
push dword [esp + 0x70]
push dword [esp + 0x24]
push 0x3b
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576569
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x6c]
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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576588
push 0
push dword [esp + 0x4c]
push dword [esp + 0x1c]
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5765bb
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebp], 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], 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 [ebp]
cmp byte [eax + 0x57], 0
je 0x5765cd
mov eax, 0x64e020
jmp 0x5765da
mov eax, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
push dword [esp + 0x18]
mov dword [eax + 8], edx
push esi
push dword [esp + 0x54]
push ebx
call fcn.0059ae40
mov ecx, dword [ebp]
add esp, 0x10
cmp dword [edi + 0x70], ecx
jg 0x57660c
push 0
push dword [esp + 0x50]
push 1
push 0x47
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x57663f
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [ebp], 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 dword [esp + 0x7c], 0
je 0x57669d
mov ecx, dword [ebp]
mov edx, dword [esi + 4]
cmp dword [edi + 0x70], ecx
jg 0x576665
push 0
push dword [esp + 0x44]
push edx
push 0x25
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5766e0
mov ebx, dword [esp + 0x108]
lea eax, [ecx + 1]
mov dword [ebp], 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], 0x25
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x5766e0
push dword [esp + 0x50]
call fcn.00593560
mov edx, dword [edi]
add esp, 4
cmp byte [edx + 0x57], 0
jne 0x5766e0
mov eax, dword [esp + 0x60]
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.004ffce0
mov word [esi], 0xbb
add esp, 0xc
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x68]
test eax, eax
je 0x5766f5
push eax
push dword [esp + 0x34]
call fcn.004fac60
add esp, 8
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576719
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x84]
inc eax
push eax
push 0xa
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576757
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x108]
lea ecx, [ecx + ecx*4]
mov dword [ebp], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x80]
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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576774
push 0
push dword [esp + 0x70]
push 0
push 9
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5767a7
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [ebp], 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 [ebp]
mov dword [esp + 0x40], ecx
cmp dword [edi + 0x70], ecx
jg 0x5767cc
push 0
push dword [esp + 0x20]
push 1
push 0x47
push edi
call fcn.0051dc60
mov edx, dword [esp + 0x30]
add esp, 0x14
jmp 0x5767ff
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [ebp], 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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x57681c
push 0
push 0
lea eax, [edx + 1]
push eax
push 0x43
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576854
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + ecx*4]
mov dword [ebp], 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
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x80]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x576875
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
jmp 0x57687e
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp]
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov dword [esp + 0x20], ecx
cmp dword [edi + 0x70], eax
jg 0x5768a4
push 0
push edx
push dword [esp + 0x54]
push 0x3b
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5768d7
mov ebx, dword [esp + 0x4c]
mov dword [ebp], ecx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x108]
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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x5768f6
mov eax, dword [esp + 0x1c]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x57692e
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + ecx*4]
mov dword [ebp], 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 esi
push ebx
call fcn.004fc0a0
push 0x10
push dword [esp + 0x2c]
push dword [esp + 0x80]
push ebx
call fcn.005517c0
push dword [esp + 0x58]
lea eax, [esp + 0xe8]
push dword [esp + 0x3c]
push dword [esp + 0x130]
push eax
lea eax, [esp + 0x100]
push eax
push 0xffffffffffffffff
push dword [esp + 0x13c]
push ebx
call fcn.0053b640
mov ecx, dword [ebp]
add esp, 0x38
cmp dword [edi + 0x70], ecx
jg 0x576998
mov eax, dword [esp + 0x1c]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5769d0
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + ecx*4]
mov dword [ebp], 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
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x48]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x5769ee
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
jmp 0x5769f7
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
push esi
push ebx
call fcn.005377a0
mov ecx, dword [ebp]
add esp, 8
cmp dword [edi + 0x70], ecx
jg 0x576a1e
push 0
push dword [esp + 0x50]
push 0
push 0x47
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576a51
mov edx, dword [esp + 0x4c]
lea eax, [ecx + 1]
mov dword [ebp], 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 [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576a6e
push 0
push 0
push dword [esp + 0x1c]
push 0x43
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576aa1
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebp], 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 + 0x10], 0
je 0x577106
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x577106
mov eax, dword [esi + 0x20]
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.004fcb10
add esp, 0x10
jmp 0x577106
cmp dword [ebp + 0x24], 0
jne 0x576e53
mov edx, dword [ebp + 0x1c]
cmp dword [edx], 1
jne 0x576e53
mov ecx, dword [ebp + 0x20]
cmp dword [ecx], 1
jne 0x576e53
cmp dword [ecx + 0x1c], 0
jne 0x576e53
cmp dword [esi + 0x24], 1
jne 0x576e53
cmp dword [ebp + 0x2c], 0
jne 0x576e53
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x48], ecx
cmp byte [ecx + 0x2b], 0
jne 0x576e53
mov edx, dword [edx + 8]
cmp byte [edx], 0xa8
jne 0x576e53
cmp dword [edx + 0x28], esi
jne 0x576e53
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x576e53
test dword [edx + 4], 0x1000004
jne 0x576e53
mov esi, dword [ecx + 0x3c]
mov edx, 0xffff8000
mov dword [esp + 0x50], edx
test esi, esi
je 0x576b8c
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x50], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], esi
je 0x576b8c
nop dword [eax]
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], esi
jne 0x576b80
mov dword [esp + 0x50], 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 + 0x10], eax
mov eax, dword [ebx + 0x80]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x5c]
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x20]
test ecx, eax
jne 0x576be9
mov eax, dword [esp + 0x40]
bts ecx, edx
mov dword [eax + 0x5c], ecx
cmp edx, 1
jne 0x576bee
push eax
call fcn.005674c0
add esp, 4
jmp 0x576c16
cmp edx, 1
je 0x576c16
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 0x576c16
mov ecx, dword [esp + 0x48]
push dword [ecx]
push 0
push dword [ecx + 0x14]
push edx
push ebx
call fcn.00527720
add esp, 0x14
mov edx, dword [esp + 0x48]
test byte [edx + 0x1c], 0x80
je 0x576c37
mov esi, dword [edx + 8]
test esi, esi
je 0x576c37
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x576c37
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x576c27
mov eax, dword [ebp + 0x20]
test byte [eax + 0x30], 1
jne 0x576c70
mov eax, dword [edx + 8]
test eax, eax
je 0x576c70
test byte [eax + 0x38], 4
jne 0x576c69
movzx ecx, word [eax + 0x30]
cmp cx, word [edx + 0x28]
jge 0x576c69
cmp dword [eax + 0x24], 0
jne 0x576c69
test esi, esi
je 0x576c67
cmp cx, word [esi + 0x30]
jge 0x576c69
mov esi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x576c47
test esi, esi
je 0x576c89
mov eax, dword [esi + 0x2c]
push esi
push ebx
mov dword [esp + 0x18], eax
call fcn.00564a60
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [edi + 0x6c]
lea ebp, [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x576cb1
mov edx, dword [esp + 0x50]
push 1
push edx
mov edx, dword [esp + 0x18]
push edx
push dword [esp + 0x44]
push 0x70
push edi
call fcn.004e7220
add esp, 0x18
jmp 0x576ce4
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
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 0x576d3b
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x576d10
cmp dword [eax + 0x210], 0
jne 0x576d3b
add dword [edx], 0xffffffff
jne 0x576d3b
push edx
push dword [edx + 0xc]
call fcn.0054ad00
add esp, 8
jmp 0x576d3b
mov eax, dword [ebp]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
cmp byte [eax + 1], 0
je 0x576d34
push 0xfffffffffffffff8
push edx
push eax
push edi
call fcn.0059d7a0
add esp, 0x10
jmp 0x576d3b
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x18]
add eax, dword [ecx + 0x24]
add dword [ebx + 0x2c], eax
mov edx, dword [ecx + 0x18]
add edx, dword [ecx + 0xc]
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576d71
push 0
push edx
push dword [esp + 0x40]
push 0x62
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576da7
mov ebx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x108]
mov dword [eax + ecx*4], 0x62
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebp]
cmp dword [edi + 0x70], ecx
jg 0x576dc4
push 0
push 0
push dword [esp + 0x40]
push 0x7a
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576df7
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [ebp], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x7a
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 byte [ebx + 0xdb], 2
jne 0x5770cb
mov ecx, dword [esp + 0x48]
test esi, esi
je 0x576e24
test byte [ecx + 0x1c], 0x80
je 0x576e1b
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x576e24
mov eax, dword [esi]
mov edx, 1
jmp 0x576e2b
xor edx, edx
mov eax, section..rdata
push eax
test edx, edx
mov eax, str._USING_COVERING_INDEX
mov esi, section..rdata
cmove eax, esi
push eax
push dword [ecx]
push str.SCAN__s_s_s
push 0
push ebx
call fcn.00588db0
add esp, 0x18
jmp 0x5770cb
cmp dword [esi + 0x1c], 0
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
je 0x576f09
xor edx, edx
test eax, eax
jle 0x576ea5
mov ecx, dword [esi + 0x20]
mov eax, dword [ecx]
test dword [eax + 4], 0x1000000
jne 0x576e95
mov eax, dword [ecx + 4]
test byte [eax + 4], 0x20
jne 0x576ea2
mov eax, dword [esi + 0x24]
inc edx
add ecx, 0x18
cmp edx, eax
jl 0x576e81
jmp 0x576ea5
mov eax, dword [esi + 0x24]
cmp edx, eax
jne 0x576f2d
inc dword [ebx + 0x2c]
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebx + 0x2c]
mov dword [esp + 0x10], edx
cmp dword [edi + 0x70], ecx
jg 0x576ed1
push 0
push edx
push 0
push 0x47
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x576f2d
mov ebp, dword [esp + 0x10c]
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 0x576f2d
cmp eax, 1
jne 0x576f2d
mov eax, dword [esi + 0x20]
cmp dword [eax + 8], 0
jl 0x576f2d
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x20], eax
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x24]
add eax, dword [esi + 0x18]
add dword [ebx + 0x2c], eax
push esi
push ebx
call fcn.005377a0
movzx eax, byte [esp + 0x2f]
or ax, word [esp + 0x20]
push 0
movzx eax, ax
push eax
push ebp
push dword [esp + 0x34]
push dword [esp + 0xc4]
push dword [esp + 0x6c]
push dword [esp + 0x48]
push ebx
call fcn.00590040
mov ebp, eax
add esp, 0x28
test ebp, ebp
je 0x5771af
movzx eax, byte [ebp + 0x2f]
push eax
push esi
push dword [esp + 0x18]
mov dword [esp + 0x24], eax
push ebx
call fcn.0059ae40
mov ecx, dword [esp + 0x28]
add esp, 0x10
test ecx, ecx
je 0x576fb1
mov eax, dword [esi + 0x20]
test eax, eax
je 0x576fb1
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.004fcb10
add esp, 0x10
mov edx, dword [esp + 0x10]
test edx, edx
je 0x577006
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x576fd3
push 0
push edx
push 1
push 0x47
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x577006
mov esi, dword [esp + 0x34]
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 + 0x27], 0
je 0x5770b8
test byte [ebp + 0x30], 4
je 0x5770b8
cmp byte [ebp + 0x2d], 0
je 0x5770b8
movzx edx, byte [ebp + 0x2c]
sub edx, 1
js 0x577054
lea ecx, [edx + edx*2]
shl ecx, 5
add ecx, ebp
nop word [eax + eax]
mov eax, dword [ecx + 0x348]
test byte [eax + 0x2c], 4
jne 0x577071
sub ecx, 0x60
sub edx, 1
jns 0x577040
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x577082
push 0
push edx
push 0
push 9
push edi
call fcn.0051dc60
add esp, 0x14
jmp 0x5770b8
push dword [ecx + 0x308]
push edi
call fcn.00589300
add esp, 8
jmp 0x5770b8
mov ebx, dword [esp + 0x108]
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 ebp
call fcn.00593560
push esi
push ebx
call fcn.004fc0a0
add esp, 0xc
lea ebp, [edi + 0x6c]
mov esi, dword [esp + 0x6c]
push 0x10
push esi
push dword [esp + 0x78]
mov dword [esp + 0xe4], 0
push ebx
call fcn.005517c0
push esi
push esi
push dword [esp + 0x128]
push 0
push 0
push 0xffffffffffffffff
push dword [esp + 0x134]
push ebx
call fcn.0053b640
add esp, 0x30
mov edx, dword [esp + 0x6c]
lea esi, [edi + 0xc]
mov ecx, dword [esi]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x577126
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
jmp 0x57712f
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0x44], 3
jne 0x57714b
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.00588db0
add esp, 0x10
cmp dword [esp + 0xd8], 0
je 0x57717a
push dword [esp + 0x110]
mov eax, dword [esp + 0x5c]
push dword [eax]
lea eax, [esp + 0xe0]
push eax
push dword [esp + 0x118]
push ebx
call fcn.0051b2c0
add esp, 0x14
mov ecx, dword [esi]
mov edx, dword [esp + 0x100]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x57719a
push edx
push edi
push ecx
call fcn.005379d0
add esp, 0xc
jmp 0x5771a3
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebp]
mov dword [ecx + edx*4], eax
xor eax, eax
cmp dword [ebx + 0x24], eax
setg al
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xac]
test eax, eax
je 0x5741d3
push eax
push ecx
call fcn.004fac60
add esp, 8
jmp 0x5741d3
mov esi, dword [ebx + 8]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x5771f9
pop esi
mov eax, 0x64e020
pop edi
pop ebp
mov eax, dword [eax + 8]
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x34]
pop ebx
add esp, 0xf4
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 + 0x34]
pop ebx
add esp, 0xf4
ret
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0xf4
ret