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

Disassembly:
sub esp, 0xe4
push ebx
mov ebx, dword [esp + 0xec]
push ebp
push edi
mov dword [esp + 0x5c], 1
mov edi, dword [ebx + 8]
mov eax, dword [ebx]
mov dword [esp + 0x98], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x50], edi
test edi, edi
jne 0x4a7215
cmp dword [ebx + 0x80], edi
jne 0x4a7206
test byte [eax + 0x50], 8
jne 0x4a7206
mov byte [ebx + 0x17], 1
push ebx
call fcn.004b1580
add esp, 4
mov dword [esp + 0x50], eax
mov edi, eax
mov ebp, dword [esp + 0xf8]
test ebp, ebp
je 0x4aa388
cmp dword [ebx + 0x24], 0
jne 0x4aa388
push 0
push 0
push 0
push 0x15
push ebx
call fcn.0047da60
add esp, 0x14
test eax, eax
jne 0x4aa388
mov eax, dword [esp + 0xfc]
cmp byte [eax], 6
ja 0x4a727e
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x4a7270
push eax
push 0x48ef70
push ebx
call fcn.0049eb40
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.004aa7a0
add esp, 0xc
cmp dword [ebx + 0x24], 0
jne 0x4a72cb
mov esi, dword [ebp + 4]
test esi, 0x800000
je 0x4a7300
mov eax, dword [ebp + 0x20]
push eax
lea ebp, [eax + 8]
push ebp
call fcn.00477c00
add esp, 8
test eax, eax
je 0x4a72f0
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4a72bc
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.00489e60
add esp, 0xc
mov ecx, dword [ebx + 0xe8]
test ecx, ecx
jne 0x4aa33f
pop esi
pop edi
xor eax, eax
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x58]
pop ebp
pop ebx
add esp, 0xe4
ret
mov ebp, dword [esp + 0xfc]
and esi, 0xff7fffff
mov dword [ebp + 4], esi
mov eax, dword [esp + 0x100]
cmp byte [eax], 9
jne 0x4a7316
push ebp
push ebx
call fcn.004938f0
add esp, 8
push ebp
push ebx
call fcn.004c7b70
add esp, 8
test eax, eax
jne 0x4a72cb
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 + 0x48], eax
mov eax, dword [ebp + 0x30]
movups xmmword [esp + 0xc8], xmm0
mov dword [esp + 0x1c], eax
movups xmmword [esp + 0xd8], xmm0
mov dword [esp + 0xc8], eax
movq qword [esp + 0xe8], xmm0
mov dword [esp + 0x10], ecx
cmp dword [ebp + 0x34], ecx
jne 0x4a7646
cmp ecx, dword [esi]
jge 0x4a7690
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 + 0x24], edx
mov dl, byte [ebp + 0x2c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x38], eax
test dl, 0x48
je 0x4a74ac
movzx eax, dl
and eax, 0x40
push eax
mov eax, dword [esp + 0x100]
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.0048e890
add esp, 0xc
test eax, eax
je 0x4a74a4
mov eax, dword [esp + 0x18]
test dword [eax + 0x50], 0x2000
jne 0x4a74a4
mov al, byte [ebp + 0x2c]
test al, 8
je 0x4a7404
test al, 0x10
je 0x4a73e5
and al, 0xf7
mov byte [ebp + 0x2c], al
jmp 0x4a7404
and al, 0xd7
mov byte [ebp + 0x2c], al
mov eax, dword [esp + 0xfc]
push 0
push dword [ebp + 0x34]
push dword [eax + 0x24]
call fcn.004ca2b0
mov al, byte [ebp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test al, 0x40
je 0x4a74a8
mov edx, dword [esi]
lea ebp, [ecx + 1]
cmp ebp, edx
jge 0x4a7474
mov ebx, dword [esp + 0x44]
lea eax, [ebp*8]
mov edi, dword [esp + 0xfc]
add eax, ebp
lea esi, [esi + eax*8]
add esi, 0x2c
mov al, byte [esi]
test al, 0x10
je 0x4a7457
test al, 8
je 0x4a7443
and al, 0xef
mov byte [esi], al
jmp 0x4a7457
push 1
push dword [esi + 8]
and al, 0xcf
mov byte [esi], al
push dword [edi + 0x24]
call fcn.004ca2b0
add esp, 0xc
mov edx, dword [ebx]
inc ebp
add esi, 0x48
cmp ebp, edx
jl 0x4a7433
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0xf8]
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
add edx, 0xffffffff
js 0x4a7564
lea eax, [edx + edx*8]
lea ecx, [eax*8 + 0x2c]
add ecx, esi
nop dword [eax]
and byte [ecx], 0xbf
test byte [ecx], 0x10
jne 0x4a74a0
sub ecx, 0x48
sub edx, 1
jns 0x4a7490
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4a7630
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
movsx edx, word [edx + 0x22]
mov eax, dword [eax]
cmp edx, eax
jne 0x4a7675
test dword [ebp + 0x30], 0x100
je 0x4a74df
mov eax, dword [ebp + 0x4c]
cmp byte [eax + 0x12], 0
je 0x4a7630
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 4]
test dl, 8
jne 0x4a7630
mov ebp, dword [eax + 0x30]
test ebp, ebp
je 0x4a75ab
mov edi, dword [esp + 0xfc]
cmp dword [edi + 0x30], 0
mov edi, dword [esp + 0x54]
jne 0x4a7514
cmp dword [esi], 1
jle 0x4a760f
cmp dword [eax + 0x3c], 0
jne 0x4a760f
test edx, 0x8000000
jne 0x4a760f
mov eax, dword [esp + 0xfc]
test dword [eax + 4], 0x8000000
jne 0x4a760f
mov eax, dword [esp + 0x18]
test dword [eax + 0x50], 0x40000
jne 0x4a760f
mov eax, dword [ebx]
push 0
push 0xc
test eax, eax
je 0x4a756d
push eax
call fcn.00487b10
add esp, 0xc
jmp 0x4a7575
mov ebp, dword [esp + 0x14]
jmp 0x4a74a8
call fcn.0049b7f0
add esp, 8
mov ecx, eax
test ecx, ecx
je 0x4a7595
mov eax, dword [ebx + 0x8c]
mov dword [ecx], eax
mov dword [ebx + 0x8c], ecx
mov dword [ecx + 4], ebp
mov dword [ecx + 8], 0x48ef70
jmp 0x4a75a0
push ebp
push dword [ebx]
call fcn.00458120
add esp, 8
mov eax, dword [esp + 0x38]
mov dword [eax + 0x30], 0
mov ebp, dword [esp + 0xfc]
push dword [esp + 0x48]
mov eax, dword [esp + 0x14]
push eax
push ebp
push ebx
call fcn.0045c220
add esp, 0x10
test eax, eax
je 0x4a75da
cmp dword [ebx + 0x24], 0
jne 0x4a72cb
or eax, 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x44], esi
cmp byte [eax + 0x57], 0
jne 0x4a72cb
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x10]
cmp byte [eax], 8
jbe 0x4a7637
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc8], eax
jmp 0x4a7637
test ecx, ecx
jne 0x4a75ab
mov ebp, dword [esp + 0xfc]
test dword [ebp + 4], 0x40000
je 0x4a75b2
cmp dword [esi], 1
je 0x4a7637
test byte [esi + 0x74], 0x22
jne 0x4a7637
jmp 0x4a75b2
mov ebp, dword [esp + 0xfc]
inc ecx
cmp dword [ebp + 0x34], 0
mov dword [esp + 0x10], ecx
je 0x4a7371
push dword [esp + 0x100]
push ebp
push ebx
call fcn.0046a670
add esp, 0xc
mov esi, eax
cmp dword [ebp + 0x38], 0
jne 0x4a7668
push ebx
call fcn.004ba8d0
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xe4
ret
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
push edx
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.00489e60
add esp, 0x14
jmp 0x4a72cb
mov eax, dword [ebp + 0x24]
mov dword [esp + 0x10], esi
test eax, eax
je 0x4a7871
cmp byte [eax], 0x2c
mov dword [esp + 0x10], esi
jne 0x4a7871
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], esi
test dword [eax + 0x50], 0x8000
jne 0x4a7871
mov eax, dword [ebx]
add eax, 0x57
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x88], 0
test eax, eax
je 0x4a771b
cmp dword [eax], 0
jle 0x4a771b
test byte [eax + 0x2c], 0x40
mov dword [esp + 0x8c], 3
jne 0x4a7726
mov dword [esp + 0x8c], 1
push dword [ebp + 0x24]
lea eax, [esp + 0x7c]
push eax
call fcn.00459790
add esp, 8
cmp dword [esp + 0x80], 0
je 0x4a7863
lea eax, [esp + 0x78]
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], 0x4723f0
mov dword [esp + 0xa8], fcn.00402cf0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
test eax, eax
je 0x4a77a5
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004bfe10
add esp, 8
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x90]
mov ecx, dword [eax]
test esi, esi
je 0x4a7863
test ecx, ecx
je 0x4a780e
cmp esi, dword [ecx + 0x164]
jae 0x4a77f9
cmp esi, dword [ecx + 0x15c]
jb 0x4a77e1
mov eax, dword [ecx + 0x158]
mov dword [esi], eax
mov dword [ecx + 0x158], esi
jmp 0x4a7863
cmp esi, dword [ecx + 0x160]
jb 0x4a77f9
mov eax, dword [ecx + 0x150]
mov dword [esi], eax
mov dword [ecx + 0x150], esi
jmp 0x4a7863
cmp dword [ecx + 0x210], 0
je 0x4a780e
push esi
push ecx
call fcn.00469e10
add esp, 8
jmp 0x4a7863
cmp dword [0x5320f0], 0
je 0x4a7859
mov eax, dword [0x536de8]
test eax, eax
je 0x4a782a
push eax
call dword [0x532140]
add esp, 4
push esi
call dword [0x53211c]
sub dword [0x536d88], eax
dec dword [0x536dac]
push esi
call dword [0x532114]
mov eax, dword [0x536de8]
add esp, 8
test eax, eax
je 0x4a7863
push eax
call dword [0x532148]
jmp 0x4a7860
push esi
call dword [0x532114]
add esp, 4
cmp dword [esp + 0x84], 0
jne 0x4a76d2
mov esi, dword [esp + 0x18]
test dword [esi + 0x50], 0x201
jne 0x4a789f
push ebp
push ebx
call fcn.004530f0
add esp, 8
test eax, eax
je 0x4a789f
cmp byte [esi + 0x57], 0
jne 0x4a72cb
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x10], ecx
jmp 0x4a78a3
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [ecx], eax
jle 0x4a80d8
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 0x4a78e1
mov eax, dword [esi + 8]
test eax, eax
je 0x4a78e1
push dword [esi + 4]
push 0x52a5cb
push eax
push 0x14
push ebx
call fcn.0047da60
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov eax, dword [esi + 0x14]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4a80c7
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push ebp
call fcn.0045fe80
mov eax, dword [esp + 0x1c]
add esp, 8
add dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x50]
mov eax, ecx
test ecx, 0x1000
jne 0x4a7957
test dword [esi + 0x28], 0x100
je 0x4a7938
mov edx, dword [esi + 0x44]
cmp byte [edx + 0x12], 0
je 0x4a7957
cmp dword [edx], 2
jge 0x4a7957
push dword [esp + 0x28]
push dword [esp + 0x14]
push dword [ebp + 0x24]
push dword [esp + 0x40]
push ebx
call fcn.004727f0
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov eax, dword [eax + 0x50]
test eax, 0x4000000
jne 0x4a7aad
test dword [esi + 0x28], 0x108
jne 0x4a7aad
mov edx, dword [esi + 0x14]
mov eax, edx
mov dword [esp + 0x24], edx
test edx, edx
je 0x4a79aa
nop dword [eax]
test byte [eax + 4], 9
jne 0x4a7aad
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x4a799a
cmp byte [eax], 0x87
jne 0x4a7aad
cmp dword [eax + 0x44], 0
jne 0x4a7aad
mov eax, ecx
test eax, eax
jne 0x4a7980
mov ebp, dword [edx + 0x30]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], ecx
test ebp, ebp
je 0x4a7a1d
mov ecx, dword [ebp]
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x4a7a1d
add ebp, 0x18
nop dword [eax]
movzx eax, word [ebp]
test ax, ax
je 0x4a7a0d
add eax, 0xffff
mov edx, 0x3f
cmp ax, 0x40
jae 0x4a79ec
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 + 0x50], eax
or dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x14]
add ebp, 0x14
sub ecx, 1
mov dword [esp + 0x14], ecx
jne 0x4a79d0
mov eax, dword [esp + 0x50]
mov ecx, dword [esi + 0x10]
movsx ecx, word [ecx + 0x22]
mov dword [esp + 0x14], ecx
test ecx, ecx
jle 0x4a7aad
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov ebx, ebp
xor ecx, ecx
cmp ebx, 0x3f
jae 0x4a7a5a
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 + 0x50]
cmovae edx, ecx
jmp 0x4a7a5f
mov edx, 0x80000000
and edx, dword [esp + 0x44]
and ecx, eax
or ecx, edx
jne 0x4a7a98
mov eax, edi
nop dword [eax + eax]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + ebp + 8]
cmp byte [ecx], 0x79
je 0x4a7a8d
and dword [ecx + 4], 0xfff7dfff
mov byte [ecx], 0x79
or dword [eax + 4], 0x1000000
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x4a7a70
mov eax, dword [esp + 0x50]
inc ebx
add ebp, 0x14
cmp ebx, dword [esp + 0x14]
jl 0x4a7a38
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0xf8]
mov eax, dword [ebx + 0x104]
mov ecx, dword [esp + 0x28]
mov ebp, ecx
mov dword [esp + 0x44], eax
mov eax, dword [esi + 8]
mov dword [ebx + 0x104], eax
test dword [esi + 0x28], 0x100
je 0x4a7aef
mov eax, dword [esi + 0x44]
mov cl, byte [eax + 0x12]
test cl, cl
je 0x4a7ba3
cmp dword [eax], 2
jl 0x4a7aeb
cmp cl, 2
jne 0x4a7ba3
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
test byte [edx + 0x2c], 0x40
jne 0x4a7ba3
mov eax, dword [ebx]
test dword [eax + 0x50], 0x2000000
jne 0x4a7ba3
push dword [edx]
lea eax, [ecx + 1]
push eax
push esi
push edx
call fcn.00461bb0
add esp, 0x10
test eax, eax
jne 0x4a7ba3
cmp dword [esp + 0x28], eax
jne 0x4a7b76
mov edx, dword [esp + 0x10]
cmp dword [edx], 1
je 0x4a7b49
test byte [edx + 0x74], 2
jne 0x4a7b49
mov ecx, dword [esp + 0xfc]
test dword [ecx + 4], 0x10000000
jne 0x4a7ba3
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 0x4a7be5
push ebp
push 0
push edx
push 0xb
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a7c17
mov ecx, dword [esp + 0xfc]
test dword [ecx + 4], 0x10000000
jne 0x4a7ba3
test byte [esi + 0x24], 0x22
lea eax, [esi + 0x24]
jne 0x4a7ba3
nop
test ebp, ebp
je 0x4a7b49
sub eax, 0x48
dec ebp
cmp dword [eax - 0x10], 0
jne 0x4a7ba3
test byte [eax], 0x22
je 0x4a7b90
test dword [esi + 0x28], 0x100
je 0x4a7d92
mov ebp, dword [esi + 0x44]
mov edx, dword [ebp + 4]
test edx, edx
jle 0x4a7d92
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 8]
mov dword [esp + 0x2c], eax
cmp dword [edi + 0x70], ecx
jg 0x4a7ce7
push 0
push edx
push eax
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a7d1d
mov ebx, dword [esp + 0xf8]
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 + 0x88], 0xd
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
call fcn.004ba870
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x48]
push ebx
call fcn.004a71c0
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 + 0xa4]
or dword [esi + 0x28], 0x20
push edi
mov dword [esi + 0x20], eax
call fcn.004b1ad0
mov eax, dword [edi]
add esp, 0x24
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4a7cc3
mov eax, 0x536fc8
mov dword [eax], edx
mov byte [ebx + 0x13], 0
mov dword [ebx + 0x1c], 0
jmp 0x4a8084
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 0x4a8084
mov ebx, dword [esp + 0x2c]
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 + 0xf8]
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 0x4a7d81
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a7d4f
push 0
push edx
push esi
push 0x73
push edi
call fcn.0045f9a0
mov ecx, dword [esp + 0x48]
add esp, 0x14
mov ax, word [ebp + 0x10]
mov word [ecx + 2], ax
jmp 0x4a8084
mov ebx, dword [esp + 0xf8]
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 0x4a8084
push dword [esp + 0x28]
push 0
push esi
push dword [esp + 0x1c]
call fcn.00461bb0
mov ebp, eax
add esp, 0x10
test ebp, ebp
je 0x4a7e83
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4a7e0c
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x2c], eax
cmp dword [edi + 0x70], ecx
jg 0x4a7dd6
push 0
push edx
push eax
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a7e0c
mov ebx, dword [esp + 0x2c]
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 + 0xf8]
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 0x4a7e3d
push 0
push edx
push esi
push 0x73
push edi
call fcn.0045f9a0
mov eax, dword [ebp + 0x14]
add esp, 0x14
mov ecx, dword [esp + 0x34]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x4a8084
mov ebx, dword [esp + 0xf8]
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 0x4a8084
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 + 0x24], edx
cmp dword [edi + 0x70], edx
jg 0x4a7eb0
push ebp
push ebp
push ebp
push 9
push edi
call fcn.0045f9a0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x24], edx
jmp 0x4a7eda
mov ebx, dword [esp + 0xf8]
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 + 0x14], eax
mov dword [esi + 0x18], eax
jne 0x4a7f44
mov ebp, dword [edi + 0x6c]
cmp dword [edi + 0x70], ebp
jg 0x4a7f0b
push 0
push 0
push 0
push 0xf
push edi
call fcn.0045f9a0
add esp, 0x14
mov ebp, eax
jmp 0x4a7f44
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 + 0x88], 0xc
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
call fcn.004ba870
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x48]
push ebx
call fcn.004a71c0
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 0x4a7fdc
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4a7fca
mov eax, 0x536fc0
jmp 0x4a7fd9
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 + 0x14]
cmp dword [edi + 0x70], ecx
jg 0x4a7ffc
push 0
push ebp
push edx
push 0x43
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a8027
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 0x4a8039
mov eax, 0x536fc0
jmp 0x4a8046
mov eax, dword [esp + 0x24]
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 0x4a8084
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 + 0x18]
cmp byte [eax + 0x57], 0
jne 0x4a72cb
mov ebp, dword [esp + 0xfc]
lea eax, [esp + 0x14]
push eax
push ebp
mov dword [esp + 0x1c], 0
call fcn.0045fe80
mov eax, dword [esp + 0x1c]
add esp, 8
sub dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x104], eax
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [ecx]
jl 0x4a78b1
mov eax, dword [ebp + 0x24]
mov cl, byte [ebp + 4]
mov esi, dword [ebp + 0x1c]
and cl, 1
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 4]
and al, 9
mov dword [esp + 0x44], esi
mov byte [esp + 0x23], cl
mov byte [esp + 0xbc], cl
cmp al, 1
jne 0x4a8153
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
push esi
push ecx
call fcn.0048eef0
add esp, 0xc
test eax, eax
jne 0x4a8153
cmp dword [ebp + 0x44], eax
jne 0x4a8153
and dword [ebp + 4], 0xfffffffe
push eax
push esi
push dword [esp + 0x20]
call fcn.0048ef90
mov ecx, eax
add esp, 0xc
or dword [ebp + 4], 8
mov al, 2
mov dword [esp + 0x30], ecx
mov dword [ebp + 0x28], ecx
mov byte [esp + 0x23], al
mov byte [esp + 0xbc], al
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4a819e
push dword [esi]
push 0
push eax
push ebx
call fcn.0049a190
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffff8
push ecx
mov ecx, dword [esp + 0x34]
lea eax, [edx + 1]
mov dword [esp + 0xe8], 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.004b0e50
add esp, 0x2c
mov dword [esp + 0xdc], eax
jmp 0x4a81a9
mov dword [esp + 0xdc], 0xffffffff
mov eax, dword [esp + 0x100]
cmp byte [eax], 0xc
jne 0x4a825a
push dword [esi]
push dword [eax + 4]
push 0x76
push edi
call fcn.004b0d90
add esp, 0x10
test dword [ebp + 4], 0x800
je 0x4a825a
mov ecx, dword [esi]
lea ebp, [ecx - 1]
test ebp, ebp
jle 0x4a8235
mov ebx, dword [esp + 0x18]
lea eax, [ebp*4]
add eax, ebp
lea esi, [esi + eax*4]
add esi, 8
test byte [esi + 0xc], 0x40
jne 0x4a822a
mov eax, dword [esi]
test eax, eax
je 0x4a8208
push eax
push ebx
call fcn.0048dd70
add esp, 8
mov eax, dword [esi + 4]
test eax, eax
je 0x4a8219
push eax
push ebx
call fcn.00487a00
add esp, 8
mov edx, dword [esp + 0x44]
dec ebp
sub esi, 0x14
mov ecx, dword [edx]
dec ecx
mov dword [edx], ecx
test ebp, ebp
jg 0x4a81f2
mov ebx, dword [esp + 0xf8]
mov esi, dword [esp + 0x44]
xor edx, edx
test ecx, ecx
jle 0x4a8253
lea ecx, [esi + 8]
nop
test byte [ecx + 0xc], 0x40
jne 0x4a824b
mov eax, dword [ecx]
mov byte [eax], 0x79
inc edx
add ecx, 0x14
cmp edx, dword [esi]
jl 0x4a8240
mov ebp, dword [esp + 0xfc]
dec dword [ebx + 0x38]
test dword [ebp + 4], 0x4000
mov eax, dword [ebx + 0x38]
mov dword [esp + 0xf0], eax
jne 0x4a8279
mov ecx, 0x140
mov word [ebp + 2], cx
cmp dword [ebp + 0x3c], 0
je 0x4a828a
push eax
push ebp
push ebx
call fcn.004511e0
add esp, 0xc
cmp dword [ebp + 8], 0
jne 0x4a82be
mov ecx, dword [esp + 0xdc]
test ecx, ecx
js 0x4a82be
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a82aa
mov eax, 0x536fc0
jmp 0x4a82b3
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
or byte [esp + 0xe8], 1
mov byte [eax], 0x77
test byte [ebp + 4], 1
je 0x4a8319
mov esi, dword [ebx + 0x28]
push 0xfffffffffffffff8
push 0
push 0
lea eax, [esi + 1]
mov dword [esp + 0xcc], esi
mov dword [ebx + 0x28], eax
push dword [ebp + 0x1c]
push ebx
call fcn.0049a190
add esp, 0x10
push eax
push 0
push 0
push esi
push 0x76
push edi
call fcn.004b0e50
mov dword [esp + 0xe0], eax
add esp, 0x1c
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4a8315
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov al, 3
jmp 0x4a831b
xor al, al
cmp dword [esp + 0x48], 0
mov edx, dword [esp + 0x30]
mov byte [esp + 0xbd], al
mov dword [esp + 0x50], eax
jne 0x4a85a3
test edx, edx
jne 0x4a85a3
xor ecx, ecx
mov eax, 0x100
cmp byte [esp + 0x23], cl
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [ebp + 4]
mov ebp, dword [ebp + 0x44]
and ax, dx
or cx, ax
movzx esi, cx
test ebp, ebp
je 0x4a8374
push dword [esp + 0xfc]
push ebx
call fcn.004c5b10
add esp, 8
mov ecx, dword [esp + 0xfc]
movsx eax, word [ecx + 2]
push eax
push esi
push ecx
push dword [ecx + 0x1c]
push dword [esp + 0x2c]
push dword [esp + 0x54]
push dword [esp + 0x28]
push ebx
call fcn.004c01c0
mov esi, eax
add esp, 0x20
test esi, esi
je 0x4a72cb
mov edx, dword [esp + 0xfc]
movzx eax, word [esi + 0x34]
cmp ax, word [edx + 2]
jge 0x4a83b9
mov word [edx + 2], ax
cmp byte [esp + 0x23], 0
je 0x4a83e5
mov eax, dword [esp + 0x50]
mov cl, byte [esi + 0x2f]
movzx eax, al
test cl, cl
mov dword [esp + 0x50], eax
movzx eax, cl
mov ecx, dword [esp + 0x50]
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov byte [esp + 0xbd], cl
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4a844f
mov al, byte [esi + 0x2d]
test al, al
jns 0x4a83f8
xor ecx, ecx
jmp 0x4a83fb
movsx ecx, al
test byte [esi + 0x30], 4
mov dword [esp + 0xcc], ecx
jne 0x4a840d
mov eax, dword [esi + 0x1c]
jmp 0x4a842d
movzx eax, byte [esi + 0x2c]
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + esi + 0x2d0], 0
je 0x4a8426
mov eax, dword [esi + 0x1c]
jmp 0x4a842d
mov eax, dword [eax + esi + 0x2a8]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x1c]
cmp ecx, dword [eax]
mov ecx, 0
cmove eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, eax
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xdc]
test eax, eax
js 0x4a846f
test ecx, ecx
jne 0x4a846f
push eax
push edi
call fcn.004b12d0
mov edx, dword [esp + 0x104]
add esp, 8
test ebp, ebp
je 0x4a856e
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 + 0x30], eax
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x2c]
push eax
push esi
push edx
push ebx
mov dword [esp + 0x38], eax
call fcn.004c5f60
mov esi, dword [esp + 0x40]
push esi
push 0
push 9
push edi
call fcn.004b0d90
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 0x4a84d2
push edx
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4a84db
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
push esi
push ebp
push dword [esp + 0x108]
lea eax, [esp + 0xc8]
mov dword [esp + 0xf0], 0
push eax
lea eax, [esp + 0xd8]
push eax
push 0xffffffffffffffff
push dword [esp + 0x114]
push ebx
call fcn.00478f60
mov ecx, dword [edi + 0xc]
add esp, 0x20
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a852b
push ebp
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4a8534
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + ebp*4], eax
push dword [esp + 0x24]
push 0x43
push edi
call fcn.004b0d30
mov ecx, dword [edi + 0xc]
add esp, 0xc
not esi
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a8560
push esi
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4aa29a
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + esi*4], eax
jmp 0x4aa29a
push dword [esi + 0x20]
mov ebp, dword [esp + 0x104]
lea eax, [esp + 0xc0]
push dword [esi + 0x1c]
push ebp
push eax
lea eax, [esp + 0xd8]
push eax
push 0xffffffffffffffff
push edx
push ebx
call fcn.00478f60
push esi
call fcn.004c38d0
add esp, 0x24
jmp 0x4aa2a1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], 0
test edx, edx
je 0x4a86a5
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x4a85de
add ecx, 0x1a
nop
xor esi, esi
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], si
test eax, eax
jg 0x4a85d0
mov eax, dword [edx]
lea ecx, [edx + 8]
mov dword [esp + 0x3c], ecx
test eax, eax
jle 0x4a85fe
add ecx, 0x12
nop
xor edx, edx
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], dx
test eax, eax
jg 0x4a85f0
cmp word [ebp + 2], 0x42
jle 0x4a860e
mov eax, 0x42
mov word [ebp + 2], ax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4a86ab
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp]
cmp eax, dword [ecx]
jne 0x4a86ab
xor edx, edx
test eax, eax
jle 0x4a864f
mov esi, dword [esp + 0x1c]
lea ecx, [ebp + 0x10]
sub esi, ebp
mov al, byte [esi + ecx]
lea ecx, [ecx + 0x14]
and al, 1
inc edx
mov byte [ecx - 0x14], al
mov eax, dword [ebp]
cmp edx, eax
jl 0x4a8638
mov ecx, dword [esp + 0x1c]
cmp eax, dword [ecx]
jne 0x4a86ab
xor ebp, ebp
test eax, eax
jle 0x4a869b
mov eax, dword [esp + 0x30]
lea esi, [ecx + 0x10]
sub eax, ecx
mov dword [esp + 0x2c], eax
mov al, byte [eax + esi]
cmp al, byte [esi]
jne 0x4a86ab
mov eax, dword [esp + 0x3c]
push 0xffffffffffffffff
push dword [esi - 8]
push dword [eax]
push 0
call fcn.0048d880
add esp, 0x10
test eax, eax
jne 0x4a86ab
mov eax, dword [esp + 0x30]
inc ebp
add dword [esp + 0x3c], 0x14
add esi, 0x14
cmp ebp, dword [eax]
mov eax, dword [esp + 0x2c]
jl 0x4a8666
mov dword [esp + 0x48], 1
jmp 0x4a86ab
xor eax, eax
mov word [ebp + 2], ax
dec dword [ebx + 0x38]
mov eax, dword [ebx + 0x38]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x34], eax
mov eax, 0x2c
cmp ax, word [esi + 0x134]
jbe 0x4a86e8
cmp dword [esi + 0x130], 0
jne 0x4a86db
inc dword [esi + 0x144]
jmp 0x4a875a
cmp byte [esi + 0x57], 0
je 0x4a875a
xor ebp, ebp
jmp 0x4a8aa0
mov ebp, dword [esi + 0x158]
test ebp, ebp
je 0x4a8703
mov eax, dword [ebp]
mov dword [esi + 0x158], eax
inc dword [esi + 0x140]
jmp 0x4a8773
mov ebp, dword [esi + 0x154]
test ebp, ebp
je 0x4a871e
mov eax, dword [ebp]
mov dword [esi + 0x154], eax
inc dword [esi + 0x140]
jmp 0x4a8773
mov ebp, dword [esi + 0x150]
test ebp, ebp
je 0x4a8739
mov eax, dword [ebp]
mov dword [esi + 0x150], eax
inc dword [esi + 0x140]
jmp 0x4a8773
mov ebp, dword [esi + 0x14c]
test ebp, ebp
je 0x4a8754
mov eax, dword [ebp]
inc dword [esi + 0x140]
mov dword [esi + 0x14c], eax
jmp 0x4a8773
inc dword [esi + 0x148]
push 0
mov eax, esi
push 0x2c
push eax
call fcn.004539c0
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4a8aa0
push 0x2c
push 0
push ebp
call fcn.004e7970
mov ecx, dword [ebx]
add esp, 0xc
test ecx, ecx
je 0x4a8842
mov eax, 0xc
cmp ax, word [ecx + 0x134]
jbe 0x4a87c5
cmp dword [ecx + 0x130], 0
jne 0x4a87b8
inc dword [ecx + 0x144]
push 0
push eax
push ecx
call fcn.004539c0
add esp, 0xc
jmp 0x4a884e
cmp byte [ecx + 0x57], 0
je 0x4a8833
xor edx, edx
jmp 0x4a8850
mov edx, dword [ecx + 0x158]
test edx, edx
je 0x4a87df
mov eax, dword [edx]
mov dword [ecx + 0x158], eax
inc dword [ecx + 0x140]
jmp 0x4a8850
mov edx, dword [ecx + 0x154]
test edx, edx
je 0x4a87f9
mov eax, dword [edx]
mov dword [ecx + 0x154], eax
inc dword [ecx + 0x140]
jmp 0x4a8850
mov edx, dword [ecx + 0x150]
test edx, edx
je 0x4a8813
mov eax, dword [edx]
mov dword [ecx + 0x150], eax
inc dword [ecx + 0x140]
jmp 0x4a8850
mov edx, dword [ecx + 0x14c]
test edx, edx
je 0x4a882d
mov eax, dword [edx]
inc dword [ecx + 0x140]
mov dword [ecx + 0x14c], eax
jmp 0x4a8850
inc dword [ecx + 0x148]
push 0
push 0xc
push ecx
call fcn.004539c0
add esp, 0xc
jmp 0x4a884e
push 0
push 0xc
call fcn.0049b7f0
add esp, 8
mov edx, eax
test edx, edx
je 0x4a8871
mov eax, dword [ebx + 0x8c]
mov dword [edx], eax
mov dword [ebx + 0x8c], edx
mov dword [edx + 4], ebp
mov dword [edx + 8], 0x4462c0
jmp 0x4a8aa0
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4a8932
test esi, esi
je 0x4a88d6
cmp ecx, dword [esi + 0x164]
jae 0x4a88c1
cmp ecx, dword [esi + 0x15c]
jb 0x4a88a9
mov eax, dword [esi + 0x158]
mov dword [ecx], eax
mov dword [esi + 0x158], ecx
jmp 0x4a8932
cmp ecx, dword [esi + 0x160]
jb 0x4a88c1
mov eax, dword [esi + 0x150]
mov dword [ecx], eax
mov dword [esi + 0x150], ecx
jmp 0x4a8932
cmp dword [esi + 0x210], 0
je 0x4a88d6
push ecx
push esi
call fcn.00469e10
add esp, 8
jmp 0x4a8932
cmp dword [0x5320f0], 0
je 0x4a8928
mov eax, dword [0x536de8]
test eax, eax
je 0x4a88f6
push eax
call dword [0x532140]
mov ecx, dword [esp + 0x18]
add esp, 4
push ecx
call dword [0x53211c]
push dword [esp + 0x18]
sub dword [0x536d88], eax
dec dword [0x536dac]
call dword [0x532114]
mov eax, dword [0x536de8]
add esp, 8
test eax, eax
je 0x4a8932
push eax
call dword [0x532148]
jmp 0x4a892f
push ecx
call dword [0x532114]
add esp, 4
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4a89f1
test esi, esi
je 0x4a8995
cmp ecx, dword [esi + 0x164]
jae 0x4a8980
cmp ecx, dword [esi + 0x15c]
jb 0x4a8968
mov eax, dword [esi + 0x158]
mov dword [ecx], eax
mov dword [esi + 0x158], ecx
jmp 0x4a89f5
cmp ecx, dword [esi + 0x160]
jb 0x4a8980
mov eax, dword [esi + 0x150]
mov dword [ecx], eax
mov dword [esi + 0x150], ecx
jmp 0x4a89f5
cmp dword [esi + 0x210], 0
je 0x4a8995
push ecx
push esi
call fcn.00469e10
add esp, 8
jmp 0x4a89f5
cmp dword [0x5320f0], 0
je 0x4a89e7
mov eax, dword [0x536de8]
test eax, eax
je 0x4a89b5
push eax
call dword [0x532140]
mov ecx, dword [esp + 0x18]
add esp, 4
push ecx
call dword [0x53211c]
push dword [esp + 0x18]
sub dword [0x536d88], eax
dec dword [0x536dac]
call dword [0x532114]
mov eax, dword [0x536de8]
add esp, 8
test eax, eax
je 0x4a89f1
push eax
call dword [0x532148]
jmp 0x4a89ee
push ecx
call dword [0x532114]
add esp, 4
test esi, esi
je 0x4a8a47
cmp ebp, dword [esi + 0x164]
jae 0x4a8a32
cmp ebp, dword [esi + 0x15c]
jb 0x4a8a19
mov eax, dword [esi + 0x158]
mov dword [ebp], eax
mov dword [esi + 0x158], ebp
jmp 0x4a8a9c
cmp ebp, dword [esi + 0x160]
jb 0x4a8a32
mov eax, dword [esi + 0x150]
mov dword [ebp], eax
mov dword [esi + 0x150], ebp
jmp 0x4a8a9c
cmp dword [esi + 0x210], 0
je 0x4a8a47
push ebp
push esi
call fcn.00469e10
add esp, 8
jmp 0x4a8a9c
cmp dword [0x5320f0], 0
je 0x4a8a92
mov eax, dword [0x536de8]
test eax, eax
je 0x4a8a63
push eax
call dword [0x532140]
add esp, 4
push ebp
call dword [0x53211c]
sub dword [0x536d88], eax
dec dword [0x536dac]
push ebp
call dword [0x532114]
mov eax, dword [0x536de8]
add esp, 8
test eax, eax
je 0x4a8a9c
push eax
call dword [0x532148]
jmp 0x4a8a99
push ebp
call dword [0x532114]
add esp, 4
mov esi, dword [esp + 0x18]
cmp byte [esi + 0x57], 0
jne 0x4a72cb
mov esi, dword [esp + 0xfc]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x10]
movlpd qword [esp + 0x84], xmm0
movlpd qword [esp + 0x8c], xmm0
movlpd qword [esp + 0x94], xmm0
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ebp
test ecx, ecx
je 0x4a8af4
mov eax, dword [ecx]
jmp 0x4a8af6
xor eax, eax
push dword [esp + 0x44]
mov word [ebp + 2], ax
lea eax, [esp + 0x7c]
push eax
mov dword [ebp + 0x10], ecx
call fcn.0048a6f0
push dword [esp + 0x24]
lea eax, [esp + 0x84]
push eax
call fcn.0048a6f0
mov ecx, dword [esp + 0x84]
add esp, 0x10
test ecx, ecx
je 0x4a8bd9
cmp dword [esp + 0x30], 0
je 0x4a8b86
mov eax, dword [esi + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
movlpd qword [esp + 0xb0], xmm0
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], 0x45fd50
mov dword [esp + 0xb8], esi
test eax, eax
je 0x4a8b7f
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004bfe10
mov ecx, dword [esp + 0x7c]
add esp, 8
mov eax, dword [esi + 0x24]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x78]
mov dword [esp + 0xa4], 0x447430
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xa0]
push ecx
push eax
mov dword [esp + 0xb0], 0x4c00d0
mov dword [esp + 0xb4], 0x4c00c0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xa8], 0
call fcn.004bfe10
add esp, 8
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0x1c], eax
cmp dword [esi + 0x28], 0
jne 0x4a8cbe
cmp dword [esi + 0x2c], 0
jne 0x4a8cbe
cmp dword [ebp + 0x24], 1
jne 0x4a8cbe
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x4a8cb7
cmp dword [esi], 1
jne 0x4a8cb7
test dword [eax + 4], 0x1000000
jne 0x4a8cb7
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x50], 0x10000
jne 0x4a8cb7
mov eax, dword [eax + 8]
push 0x518e60
push eax
mov dword [esp + 0x34], eax
call fcn.004abf20
add esp, 8
test eax, eax
jne 0x4a8c6c
push dword [esi + 8]
call fcn.0048ab90
add esp, 4
mov byte [esp + 0x22], 1
neg eax
sbb al, al
and eax, 0xffffff02
mov dword [esp + 0x14], eax
jmp 0x4a8c8b
push 0x518e64
push dword [esp + 0x30]
call fcn.004abf20
add esp, 8
test eax, eax
jne 0x4a8cb7
mov byte [esp + 0x14], 1
mov byte [esp + 0x22], 2
push 0
push esi
push dword [esp + 0x20]
call fcn.0048ef90
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x9c], ecx
test ecx, ecx
je 0x4a8cae
mov eax, dword [esp + 0x14]
mov byte [ecx + 0x10], al
mov esi, dword [esp + 0xfc]
jmp 0x4a8cc3
mov esi, dword [esp + 0xfc]
mov byte [esp + 0x22], 0
lea eax, [esp + 0x78]
push eax
push ebp
call fcn.00447370
mov ecx, dword [esp + 0x20]
add esp, 8
cmp byte [ecx + 0x57], 0
jne 0x4aa321
cmp dword [esp + 0x30], 0
je 0x4a9d46
cmp dword [ebp + 0x24], 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x14], 0
jne 0x4a8dcb
mov eax, dword [ebp + 0x20]
cmp dword [eax + 8], 0
jl 0x4a8dcb
mov eax, dword [eax]
test eax, eax
je 0x4a8dcb
test dword [eax + 4], 0x1000
jne 0x4a8dcb
mov eax, dword [eax + 0x14]
test eax, eax
je 0x4a8dcb
mov eax, dword [eax + 8]
test eax, eax
je 0x4a8d50
push 0
push 0
push eax
push ecx
call fcn.00457690
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov esi, eax
jmp 0x4a8d52
xor esi, esi
push 0
push dword [esp + 0x34]
push ecx
call fcn.0048ef90
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x38], ecx
test ecx, ecx
jne 0x4a8d7c
push esi
push dword [ebx]
call fcn.0048ecb0
add esp, 8
mov dword [esp + 0x38], eax
jmp 0x4a8dbe
mov eax, dword [ecx]
lea edx, [eax + 1]
cmp dword [ecx + 4], edx
jge 0x4a8d98
push esi
push ecx
push dword [ebx]
call fcn.0048ebf0
add esp, 0xc
mov dword [esp + 0x38], eax
jmp 0x4a8dbe
movups xmm0, xmmword [0x513444]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x38]
mov dword [eax], edx
mov eax, dword [0x513454]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 8], esi
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 dword [esp + 0x38]
push ebx
call fcn.0049a190
mov ecx, dword [edi + 0x6c]
add esp, 0x10
movzx edx, word [ebp + 2]
mov esi, dword [ebp + 4]
mov dword [esp + 0x64], eax
mov dword [esp + 0x24], ecx
cmp dword [edi + 0x70], ecx
jg 0x4a8e14
push 0
push edx
push esi
push 0x77
push edi
call fcn.0045f9a0
mov edx, eax
add esp, 0x14
mov dword [esp + 0x24], edx
jmp 0x4a8e4a
mov ebx, dword [esp + 0xf8]
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 + 0x24]
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 0x4a8e78
cmp dword [ecx + 0x210], 0
jne 0x4a8eb2
mov edx, dword [esp + 0x64]
test edx, edx
je 0x4a8eb2
sub dword [edx], 1
jne 0x4a8eb2
push edx
push dword [edx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x4a8eb2
test edx, edx
jns 0x4a8e80
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 0x4a8ea3
mov ecx, dword [esp + 0x64]
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.004ccd50
add esp, 0x10
jmp 0x4a8eb2
mov edx, dword [esp + 0x64]
test edx, edx
je 0x4a8eb2
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov eax, dword [ebx + 0x2c]
mov esi, dword [esp + 0x30]
inc eax
mov dword [esp + 0x3c], eax
lea edx, [eax + 1]
mov eax, dword [ebx + 0x38]
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x70], eax
lea ecx, [edx + 2]
dec eax
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x38], eax
mov dword [esp + 0x28], ecx
add ecx, dword [esi]
mov dword [esp + 0x68], 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 0x4a8f0c
push 0
push edx
push 0
push 0x47
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a8f42
mov ebx, dword [esp + 0xf8]
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 [esi]
mov esi, dword [esp + 0x28]
dec edx
mov ecx, dword [edi + 0x6c]
inc esi
add edx, esi
cmp dword [edi + 0x70], ecx
jg 0x4a8f65
push edx
push esi
push 0
push 0x4b
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a8f97
mov ebx, dword [esp + 0xf8]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], esi
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 0x4a8fb6
push 0
push dword [esp + 0x6c]
push dword [esp + 0x30]
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a8fe9
mov edx, dword [esp + 0x28]
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 + 0x68]
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 + 0x48]
mov edx, 0x80
mov esi, dword [esp + 0xfc]
neg ecx
mov eax, 0x40
sbb ecx, ecx
and ecx, 0x200
cmp byte [esp + 0x23], 2
push 0
cmove eax, edx
or cx, ax
or cx, word [esp + 0x18]
movzx eax, cx
push eax
mov eax, dword [esp + 0x40]
push esi
push eax
push dword [esp + 0x40]
push dword [esp + 0x54]
push dword [esp + 0x28]
push ebx
call fcn.004c01c0
mov ecx, eax
add esp, 0x20
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x4a9061
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4aa31d
push eax
push dword [esp + 0x1c]
call fcn.00458120
add esp, 8
jmp 0x4aa31d
cmp dword [ebx + 0x48], 0
je 0x4a90b9
cmp word [ebp + 2], 0
mov edx, dword [ebp + 0x1c]
mov dword [ebp + 0x18], edx
jbe 0x4a90a7
mov eax, dword [esi + 0x28]
xor esi, esi
mov ecx, dword [eax]
dec ecx
test edx, edx
jle 0x4a9099
mov edx, dword [ebp + 0x14]
add edx, 0xe
movsx eax, word [edx]
lea edx, [edx + 0x10]
cmp eax, ecx
cmovle eax, ecx
inc esi
mov ecx, eax
cmp esi, dword [ebp + 0x1c]
jl 0x4a9086
mov esi, dword [esp + 0xfc]
lea eax, [ecx + 1]
mov word [ebp + 2], ax
lea eax, [esp + 0x78]
push eax
push ebp
call fcn.00447370
mov ecx, dword [esp + 0x48]
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 + 0x2c], eax
mov al, byte [ecx + 0x2d]
xor ecx, ecx
test al, al
movsx edx, al
mov eax, dword [esp + 0x30]
cmovns ecx, edx
cmp ecx, dword [eax]
jne 0x4a90f3
mov dword [esp + 0x60], 0
jmp 0x4a9419
cmp byte [esp + 0x23], 0
je 0x4a9105
test byte [esi + 4], 1
mov eax, str.DISTINCT
je 0x4a910a
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.004ba870
mov eax, dword [esp + 0x40]
add esp, 0x10
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x60], 1
mov edx, dword [eax]
mov esi, edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], esi
jle 0x4a916e
mov edi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
add edi, 0xe
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 ebx, 1
jne 0x4a9142
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x5c], esi
cmp esi, 1
jne 0x4a919b
mov al, byte [ebx + 0x13]
test al, al
jne 0x4a9186
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x10], eax
jmp 0x4a91c5
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
mov dword [esp + 0x10], eax
jmp 0x4a91c5
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x10], ecx
cmp esi, edx
jg 0x4a91b6
lea eax, [ecx + esi]
sub edx, esi
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], edx
jmp 0x4a91c5
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 + 0x3c]
push ebx
call fcn.0048ad90
xor edx, edx
mov byte [ebp], 1
add esp, 0x14
mov dword [esp + 0x4c], edx
cmp dword [ebp + 0x18], edx
jle 0x4a922a
mov esi, dword [esp + 0x58]
xor edi, edi
nop
mov ecx, dword [ebp + 0x14]
movsx eax, word [ecx + edi + 0xe]
cmp eax, esi
jl 0x4a9215
mov eax, dword [esp + 0x10]
add eax, esi
push eax
push dword [ecx + edi + 4]
push ebx
call fcn.0048ad00
mov edx, dword [esp + 0x58]
add esp, 0xc
inc esi
inc edx
add edi, 0x10
mov dword [esp + 0x4c], edx
cmp edx, dword [ebp + 0x18]
jl 0x4a91f0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
mov byte [ebp], 0
mov al, byte [ebx + 0x13]
test al, al
jne 0x4a923d
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4a924c
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x4c], eax
cmp dword [edi + 0x70], ecx
jg 0x4a926f
push eax
push esi
push dword [esp + 0x18]
push 0x61
push edi
call fcn.0045f9a0
mov edx, dword [esp + 0x60]
add esp, 0x14
jmp 0x4a929e
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 + 0x4c]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov eax, dword [ebp + 4]
mov dword [esp + 0x58], eax
cmp dword [edi + 0x70], ecx
jg 0x4a92c5
push 0
push edx
push eax
push 0x8b
push edi
call fcn.0045f9a0
mov edx, dword [esp + 0x60]
add esp, 0x14
jmp 0x4a92f8
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 + 4], edi
mov edi, dword [esp + 0x54]
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
test edx, edx
je 0x4a9310
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4a9310
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], edx
inc byte [ebx + 0x13]
cmp esi, 1
jne 0x4a9333
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4a9342
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4a9342
movzx eax, al
mov dword [ebx + eax*4 + 0xa4], ecx
inc byte [ebx + 0x13]
jmp 0x4a9342
cmp esi, dword [ebx + 0x1c]
jle 0x4a9342
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], eax
push dword [esp + 0x40]
call fcn.004c38d0
mov edx, dword [ebx + 0x28]
add esp, 4
mov dword [ebp + 8], edx
mov al, byte [ebx + 0x13]
inc dword [ebx + 0x28]
mov dword [esp + 0x4c], edx
test al, al
jne 0x4a936a
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x4a9379
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x5c], eax
cmp dword [edi + 0x70], ecx
jg 0x4a9395
push esi
push eax
push edx
push 0x79
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a93c7
mov ebx, dword [esp + 0xf8]
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 + 0x5c]
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 0x4a93e6
push 0
push dword [esp + 0x38]
push edx
push 0x22
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9415
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 + 0x34]
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
cmp dword [ebx + 0x48], 0
je 0x4a9482
xorps xmm0, xmm0
mov dword [esp + 0xb8], 0
xor ecx, ecx
movq qword [esp + 0xb0], xmm0
movups xmmword [esp + 0xa0], xmm0
mov dword [esp + 0xa4], 0x4463b0
mov dword [esp + 0x10], ecx
cmp dword [ebp + 0x24], ecx
jle 0x4a9482
xor esi, esi
mov eax, dword [ebp + 0x20]
mov eax, dword [esi + eax]
test eax, eax
je 0x4a9475
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.004bfe10
mov ecx, dword [esp + 0x18]
add esp, 8
inc ecx
add esi, 0x18
mov dword [esp + 0x10], ecx
cmp ecx, dword [ebp + 0x24]
jl 0x4a9456
cmp dword [esp + 0x48], 0
je 0x4a94e5
mov eax, dword [esp + 0x18]
test byte [eax + 0x50], 4
jne 0x4a94e5
cmp dword [esp + 0x60], 0
jne 0x4a94a4
mov eax, dword [esp + 0x40]
test byte [eax + 0x30], 8
je 0x4a94e5
mov edx, dword [edi]
mov dword [esp + 0xc8], 0
cmp byte [edx + 0x57], 0
jne 0x4a94e5
mov eax, dword [esp + 0xdc]
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.0045cce0
add esp, 0xc
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
cmp dword [esp + 0x60], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x10], ecx
je 0x4a9543
mov edx, dword [ebp + 4]
cmp dword [edi + 0x70], ecx
jg 0x4a9514
push dword [esp + 0x4c]
push dword [esp + 0x60]
push edx
push 0x85
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9543
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 + 0x5c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
xor esi, esi
mov edx, dword [ecx]
test edx, edx
jle 0x4a95e6
lea eax, [ecx + 8]
mov dword [esp + 0x48], eax
nop word [eax + eax]
mov edx, dword [esp + 0x6c]
add edx, esi
cmp dword [esp + 0x60], 0
je 0x4a95bc
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a9588
push edx
push esi
push dword [esp + 0x54]
push 0x5e
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a95cc
mov ebx, dword [esp + 0x4c]
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 + 0xf8]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a95cc
push edx
mov byte [ebp], 1
push dword [eax]
push ebx
call fcn.0048ad00
add esp, 0xc
mov ecx, dword [esp + 0x30]
inc esi
mov eax, dword [esp + 0x48]
add eax, 0x14
mov dword [esp + 0x48], eax
mov edx, dword [ecx]
cmp esi, edx
jl 0x4a9560
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4a95f2
inc dword [eax]
mov edx, dword [ecx]
mov esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x4a9614
mov eax, dword [esp + 0x28]
push edx
push dword [esp + 0x70]
inc eax
push eax
push 0x5a
push edi
call fcn.0045f9a0
add esp, 0x14
mov esi, eax
jmp 0x4a964f
mov ebx, dword [esp + 0x28]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
inc ebx
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0xf8]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a967b
cmp dword [eax + 0x210], 0
jne 0x4a96b1
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4a96b1
sub dword [ecx], 1
jne 0x4a96b1
push ecx
push dword [ecx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x4a96b1
test esi, esi
jns 0x4a9683
mov esi, dword [edi + 0x6c]
dec esi
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x64]
je 0x4a96a6
push 0xfffffffffffffff8
push ecx
push eax
push edi
call fcn.004ccd50
add esp, 0x10
jmp 0x4a96b1
test ecx, ecx
je 0x4a96b1
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 0x4a96cd
push edx
push 0
push edx
push 0xe
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a96fc
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
mov ebx, dword [esp + 0xf8]
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 + 0x30]
mov ecx, dword [edx + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
cmp dword [edx + 0x70], ecx
jg 0x4a9729
push eax
mov eax, dword [esp + 0x2c]
inc eax
push eax
push dword [esp + 0x74]
push 0x4f
push edx
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9761
mov edi, dword [esp + 0x54]
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 + 0x28]
inc edx
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x58]
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 0x4a9782
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x74]
inc eax
push eax
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a97bd
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0xf8]
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 + 0x70]
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 0x4a97dc
push 0
push dword [esp + 0x38]
push dword [esp + 0x24]
push 0x3b
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a980f
mov edx, dword [esp + 0x1c]
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 + 0x34]
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 0x4a982e
push 0
push dword [esp + 0x6c]
push dword [esp + 0x30]
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9861
mov edx, dword [esp + 0x28]
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 + 0x68]
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 0x4a9873
mov eax, 0x536fc0
jmp 0x4a987c
mov eax, dword [edi + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
push dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
push ebp
push esi
push ebx
mov dword [eax + 8], edx
call fcn.004ca370
mov ecx, dword [edi + 0x6c]
add esp, 0x10
cmp dword [edi + 0x70], ecx
jg 0x4a98ac
push 0
push esi
push 1
push 0x47
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a98db
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 + 0x60], 0
je 0x4a992f
mov ecx, dword [edi + 0x6c]
mov edx, dword [ebp + 4]
mov esi, dword [esp + 0x10]
cmp dword [edi + 0x70], ecx
jg 0x4a9902
push 0
push esi
push edx
push 0x25
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a996e
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 0x4a996e
push dword [esp + 0x40]
call fcn.004c38d0
mov edx, dword [edi]
add esp, 4
cmp byte [edx + 0x57], 0
jne 0x4a996e
mov eax, dword [esp + 0x24]
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.0045cce0
add esp, 0xc
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4a9983
push eax
push dword [esp + 0x1c]
call fcn.00458120
add esp, 8
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a99a4
mov eax, dword [esp + 0x1c]
push 0
push dword [esp + 0x74]
inc eax
push eax
push 0xa
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a99d8
mov edx, dword [esp + 0x1c]
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 + 4], edx
mov edx, dword [esp + 0x70]
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 0x4a99f5
push 0
push dword [esp + 0x38]
push 0
push 9
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9a28
mov edx, 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], 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 esi, dword [edi + 0x6c]
cmp dword [edi + 0x70], esi
jg 0x4a9a49
push 0
push dword [esp + 0x20]
push 1
push 0x47
push edi
call fcn.0045f9a0
mov edx, dword [esp + 0x30]
add esp, 0x14
jmp 0x4a9a7c
mov edx, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*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 0x4a9a99
push 0
push 0
lea eax, [edx + 1]
push eax
push 0x43
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9ad4
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0xf8]
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
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x70]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a9af2
push edx
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4a9afb
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov dword [esp + 0x24], ecx
cmp dword [edi + 0x70], eax
jg 0x4a9b21
push 0
push edx
push dword [esp + 0x44]
push 0x3b
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9b54
mov ebx, dword [esp + 0x3c]
mov dword [edi + 0x6c], ecx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0xf8]
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 0x4a9b73
mov eax, dword [esp + 0x1c]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9bae
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0xf8]
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.004591d0
push 0x10
push dword [esp + 0x30]
push dword [esp + 0x84]
push ebx
call fcn.0048e050
push esi
push dword [esp + 0x40]
lea eax, [esp + 0xdc]
push dword [esp + 0x120]
push eax
lea eax, [esp + 0xf0]
push eax
push 0xffffffffffffffff
push dword [esp + 0x12c]
push ebx
call fcn.00478f60
mov ecx, dword [edi + 0x6c]
add esp, 0x38
cmp dword [edi + 0x70], ecx
jg 0x4a9c15
mov eax, dword [esp + 0x1c]
push 0
push 0
inc eax
push eax
push 0x43
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9c49
mov edx, dword [esp + 0x1c]
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 + 0x68]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a9c67
push edx
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4a9c70
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
push ebp
push ebx
call fcn.00475620
mov ecx, dword [edi + 0x6c]
add esp, 8
cmp dword [edi + 0x70], ecx
jg 0x4a9c97
push 0
push dword [esp + 0x40]
push 0
push 0x47
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9cca
mov edx, dword [esp + 0x3c]
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 0x4a9ce7
push 0
push 0
push dword [esp + 0x30]
push 0x43
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4a9d1a
mov edx, dword [esp + 0x28]
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 0x4a9d3d
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a9d3d
mov eax, dword [ebp + 0x20]
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.004599f0
add esp, 0x10
mov ebp, dword [esp + 0x34]
jmp 0x4aa26f
cmp dword [esi + 0x24], 0
jne 0x4aa08e
mov esi, dword [esi + 0x1c]
cmp dword [esi], 1
jne 0x4aa08e
mov eax, dword [esp + 0xfc]
mov edx, dword [eax + 0x20]
cmp dword [edx], 1
jne 0x4aa08e
cmp dword [edx + 0x1c], 0
jne 0x4aa08e
mov ecx, dword [ebp + 0x24]
cmp ecx, 1
jne 0x4aa08e
cmp dword [eax + 0x2c], 0
jne 0x4aa08e
mov edx, dword [edx + 0x18]
mov dword [esp + 0x3c], edx
cmp byte [edx + 0x2b], 0
jne 0x4aa091
mov esi, dword [esi + 8]
cmp byte [esi], 0xa8
jne 0x4aa091
cmp dword [esi + 0x28], ebp
jne 0x4aa091
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x4aa091
test dword [esi + 4], 0x1000004
jne 0x4aa091
mov ecx, dword [edx + 0x3c]
mov edx, 0xffff8000
mov dword [esp + 0x40], edx
test ecx, ecx
je 0x4a9e03
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x40], edx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4a9e03
lea eax, [eax + 0x10]
inc edx
cmp dword [eax], ecx
jne 0x4a9df7
mov dword [esp + 0x40], edx
mov eax, dword [ebx + 0x28]
xor esi, esi
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x24], eax
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], 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 + 0x48], ecx
mov eax, dword [ecx + 0x5c]
mov ecx, edx
mov dword [esp + 0x58], eax
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x58]
test ecx, eax
jne 0x4a9e64
mov eax, dword [esp + 0x48]
bts ecx, edx
mov dword [eax + 0x5c], ecx
cmp edx, 1
jne 0x4a9e69
push eax
call fcn.0049c630
add esp, 4
jmp 0x4a9e91
cmp edx, 1
je 0x4a9e91
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 0x4a9e91
mov eax, dword [esp + 0x3c]
push dword [eax]
push 0
push dword [eax + 0x14]
push edx
push ebx
call fcn.00468c10
add esp, 0x14
mov edx, dword [esp + 0x3c]
test byte [edx + 0x1c], 0x80
je 0x4a9eb2
mov esi, dword [edx + 8]
test esi, esi
je 0x4a9eb2
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4a9eb2
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x4a9ea2
mov eax, dword [esp + 0xfc]
mov eax, dword [eax + 0x20]
test byte [eax + 0x30], 1
jne 0x4a9ef9
mov eax, dword [edx + 8]
test eax, eax
je 0x4a9ef9
nop dword [eax]
test byte [eax + 0x38], 4
jne 0x4a9ef2
movzx ecx, word [eax + 0x30]
cmp cx, word [edx + 0x28]
jge 0x4a9ef2
cmp dword [eax + 0x24], 0
jne 0x4a9ef2
test esi, esi
je 0x4a9ef0
cmp cx, word [esi + 0x30]
jge 0x4a9ef2
mov esi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4a9ed0
test esi, esi
je 0x4a9f12
mov eax, dword [esi + 0x2c]
push esi
push ebx
mov dword [esp + 0x1c], eax
call fcn.0049a220
add esp, 8
mov dword [esp + 0x2c], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a9f38
mov edx, dword [esp + 0x40]
push 1
push edx
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x30]
push edx
push 0x70
push edi
call fcn.00445f60
add esp, 0x18
jmp 0x4a9f6b
mov edx, dword [esp + 0x24]
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 + 0x40]
mov dword [eax + ecx*4], 0xfd70
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 1
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4a9fc2
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a9f97
cmp dword [eax + 0x210], 0
jne 0x4a9fc2
add dword [edx], 0xffffffff
jne 0x4a9fc2
push edx
push dword [edx + 0xc]
call fcn.00487c30
add esp, 8
jmp 0x4a9fc2
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 0x4a9fbb
push 0xfffffffffffffff8
push edx
push eax
push edi
call fcn.004ccd50
add esp, 0x10
jmp 0x4a9fc2
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 eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x18]
mov ebp, dword [esp + 0x24]
push eax
push ebp
push 0x62
push edi
call fcn.004b0d90
mov ecx, dword [edi + 0x6c]
add esp, 0x10
cmp dword [edi + 0x70], ecx
jg 0x4aa003
push 0
push 0
push ebp
push 0x7a
push edi
call fcn.0045f9a0
add esp, 0x14
jmp 0x4aa032
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 0x4aa234
mov ecx, dword [esp + 0x3c]
test esi, esi
je 0x4aa05f
test byte [ecx + 0x1c], 0x80
je 0x4aa056
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x4aa05f
mov eax, dword [esi]
mov edx, 1
jmp 0x4aa066
xor edx, edx
mov eax, 0x52a5cb
push eax
test edx, edx
mov eax, str._USING_COVERING_INDEX
mov esi, 0x52a5cb
cmove eax, esi
push eax
push dword [ecx]
push str.SCAN__s_s_s
push 0
push ebx
call fcn.004ba870
add esp, 0x18
jmp 0x4aa234
mov ecx, dword [ebp + 0x24]
cmp dword [ebp + 0x1c], 0
mov esi, ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x24], 0
je 0x4aa110
xor eax, eax
test ecx, ecx
jle 0x4aa0ef
mov edx, dword [ebp + 0x20]
xor ebx, ebx
nop dword [eax]
mov eax, dword [edx]
test dword [eax + 4], 0x1000000
jne 0x4aa0d6
mov eax, dword [edx + 4]
mov esi, ecx
test byte [eax + 4], 0x20
jne 0x4aa0e0
inc ebx
add edx, 0x18
mov esi, ecx
cmp ebx, ecx
jl 0x4aa0c0
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xf8]
mov eax, dword [esp + 0x2c]
cmp eax, esi
jne 0x4aa136
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push eax
push 0
push 0x47
push edi
mov dword [esp + 0x24], eax
call fcn.004b0d90
mov esi, dword [ebp + 0x24]
add esp, 0x10
jmp 0x4aa136
cmp ecx, 1
jne 0x4aa136
mov eax, dword [ebp + 0x20]
mov esi, ecx
cmp dword [eax + 8], 0
jl 0x4aa136
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x48], eax
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x18]
add eax, esi
add dword [ebx + 0x2c], eax
push ebp
push ebx
call fcn.00475620
movzx eax, byte [esp + 0x2a]
or ax, word [esp + 0x2c]
push 0
movzx eax, ax
push eax
push dword [esp + 0x10c]
push dword [esp + 0x5c]
push dword [esp + 0xb4]
push dword [esp + 0x5c]
push dword [esp + 0x30]
push ebx
call fcn.004c01c0
mov esi, eax
add esp, 0x28
test esi, esi
je 0x4aa31d
movzx eax, byte [esi + 0x2f]
push eax
push ebp
push dword [esp + 0x1c]
mov dword [esp + 0x64], eax
push ebx
call fcn.004ca370
mov ecx, dword [esp + 0x68]
add esp, 0x10
test ecx, ecx
je 0x4aa1bf
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4aa1bf
push dword [eax + 0xc]
push dword [eax + 8]
push ecx
push ebx
call fcn.004599f0
add esp, 0x10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4aa1d5
push eax
push 1
push 0x47
push edi
call fcn.004b0d90
add esp, 0x10
cmp byte [esp + 0x22], 0
je 0x4aa224
test byte [esi + 0x30], 4
je 0x4aa224
cmp byte [esi + 0x2d], 0
je 0x4aa224
movzx edx, byte [esi + 0x2c]
sub edx, 1
js 0x4aa218
lea ecx, [edx + edx*2]
shl ecx, 5
add ecx, esi
nop dword [eax]
mov eax, dword [ecx + 0x348]
test byte [eax + 0x2c], 4
jne 0x4aa289
sub ecx, 0x60
sub edx, 1
jns 0x4aa200
push dword [esi + 0x20]
push edi
call fcn.004bac00
add esp, 8
push esi
call fcn.004c38d0
push ebp
push ebx
call fcn.004591d0
add esp, 0xc
mov ebp, dword [esp + 0x34]
push 0x10
push ebp
push dword [esp + 0x7c]
mov dword [esp + 0xd4], 0
push ebx
call fcn.0048e050
push ebp
push ebp
push dword [esp + 0x118]
push 0
push 0
push 0xffffffffffffffff
push dword [esp + 0x124]
push ebx
call fcn.00478f60
add esp, 0x30
mov ecx, dword [edi + 0xc]
not ebp
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4aa291
push ebp
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4aa29a
push dword [ecx + 0x308]
jmp 0x4aa21b
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + ebp*4], eax
mov ebp, dword [esp + 0x100]
mov eax, dword [esp + 0x50]
cmp al, 3
jne 0x4aa2be
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push 0
push ebx
call fcn.004ba870
add esp, 0x10
cmp dword [esp + 0xc8], 0
je 0x4aa2e7
mov eax, dword [esp + 0x44]
push ebp
push dword [eax]
lea eax, [esp + 0xd0]
push eax
push dword [esp + 0x108]
push ebx
call fcn.0045dd00
add esp, 0x14
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0xf0]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4aa308
push edx
push edi
push ecx
call fcn.00475850
add esp, 0xc
jmp 0x4aa311
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 + 0x60], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x4a72cb
push eax
push ecx
call fcn.00458120
add esp, 8
jmp 0x4a72cb
mov esi, dword [ebx + 8]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4aa367
pop esi
mov eax, 0x536fc0
pop edi
pop ebp
mov eax, dword [eax + 8]
mov dword [ebx + 0xe8], eax
mov eax, dword [esp + 0x54]
pop ebx
add esp, 0xe4
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 + 0x54]
pop ebx
add esp, 0xe4
ret
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0xe4
ret