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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x118
mov eax, dword [0x570400]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
mov esi, ecx
mov dword [esp + 0x5c], 1
mov ecx, dword [ebp + 8]
mov eax, edx
push edi
mov dword [esp + 0x7c], ecx
mov edi, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x88], 0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], edi
test edi, edi
jne 0x4a0386
cmp dword [esi + 0x80], edi
jne 0x4a0375
test byte [ecx + 0x50], 8
jne 0x4a0375
mov byte [esi + 0x17], 1
mov ecx, esi
call fcn.00441d60
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], edi
test eax, eax
je 0x4a3c25
cmp dword [esi + 0x24], 0
jne 0x4a3c25
push 0
push 0
push 0
mov edx, 0x15
mov ecx, esi
call fcn.0046dcc0
add esp, 0xc
test eax, eax
jne 0x4a3c25
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
cmp byte [eax], 6
ja 0x4a0417
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a0409
mov eax, dword [0x570670]
test eax, eax
je 0x4a04a7
push 0x12c
call eax
mov ecx, dword [esi]
add esp, 4
test eax, eax
je 0x4a04a9
call fcn.00419390
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
call fcn.0045d940
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x30], 0
mov eax, dword [ecx + 4]
and eax, 0xfffffffe
or eax, 0x400000
mov dword [ecx + 4], eax
mov edx, ecx
mov ecx, esi
push 0
call fcn.0049ea80
add esp, 4
cmp dword [esi + 0x24], 0
jne 0x4a0479
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], eax
test eax, 0x800000
je 0x4a04fb
mov edx, dword [ecx + 0x20]
lea eax, [edx + 8]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.004a0280
test eax, eax
je 0x4a04eb
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x4a046a
mov eax, dword [ecx + 0x10]
mov eax, dword [eax]
push eax
push str.target_object_alias_may_not_appear_in_FROM_clause:__s
push esi
call fcn.0041c7c0
add esp, 0xc
mov ecx, dword [esi + 0xe8]
test ecx, ecx
jne 0x4a3bca
xor eax, eax
mov dword [esi + 0xe8], eax
mov eax, dword [esp + 0x60]
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
push 0
push 0xc
test ecx, ecx
je 0x4a04b8
call fcn.004190c0
jmp 0x4a04bd
call fcn.00418960
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4a03f3
mov eax, dword [esi + 0x8c]
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
mov dword [esi + 0x8c], ecx
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x45d9a0
jmp 0x4a03fe
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
and eax, 0xff7fffff
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x7c]
cmp byte [eax], 9
jne 0x4a050d
mov edx, ecx
mov ecx, esi
call fcn.00497470
mov edx, dword [esp + 0x14]
mov ecx, esi
call fcn.004c28f0
test eax, eax
jne 0x4a0479
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0xf0], xmm0
movq qword [esp + 0x100], xmm0
mov edx, dword [eax + 4]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x30]
shr edx, 3
and edx, 1
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], edx
xor edx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], edx
cmp dword [eax + 0x34], edx
jne 0x4a3b2d
cmp dword [ecx], edx
jle 0x4a0875
nop dword [eax]
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x24], eax
mov al, byte [ecx + 0x2c]
mov dword [esp + 0x3c], ecx
test al, 0x48
je 0x4a06a8
mov edx, dword [ecx + 0x34]
movzx eax, al
and eax, 0x40
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x24]
call fcn.004657c0
mov ecx, dword [esp + 0x40]
add esp, 4
test eax, eax
je 0x4a06a4
mov eax, dword [esp + 0x44]
test dword [eax + 0x50], 0x2000
jne 0x4a06a4
mov al, byte [ecx + 0x2c]
test al, 8
je 0x4a0608
test al, 0x10
je 0x4a05eb
and al, 0xf7
mov byte [ecx + 0x2c], al
jmp 0x4a0608
mov edx, dword [ecx + 0x34]
and al, 0xd7
mov byte [ecx + 0x2c], al
mov eax, dword [esp + 0x14]
push 0
mov ecx, dword [eax + 0x24]
call fcn.00494080
mov ecx, dword [esp + 0x40]
add esp, 4
test byte [ecx + 0x2c], 0x40
je 0x4a06a4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x10], ecx
mov edx, dword [eax]
cmp ecx, edx
jge 0x4a0678
mov esi, dword [esp + 0x2c]
lea eax, [ecx + ecx*8]
mov edi, dword [esp + 0x14]
add esi, 0x2c
lea esi, [esi + eax*8]
mov al, byte [esi]
test al, 0x10
je 0x4a065e
test al, 8
je 0x4a0646
and al, 0xef
mov byte [esi], al
jmp 0x4a065e
mov edx, dword [esi + 8]
and al, 0xcf
mov byte [esi], al
mov ecx, dword [edi + 0x24]
push 1
call fcn.00494080
mov ecx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x2c]
inc ecx
add esi, 0x48
mov dword [esp + 0x10], ecx
mov edx, dword [eax]
cmp ecx, edx
jl 0x4a0636
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
add edx, 0xffffffff
js 0x4a06a0
mov ecx, dword [esp + 0x2c]
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
add ecx, 0x2c
nop word [eax + eax]
and byte [ecx], 0xbf
test byte [ecx], 0x10
jne 0x4a06a0
sub ecx, 0x48
sub edx, 1
jns 0x4a0690
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x4c], 0
je 0x4a0856
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
movsx eax, word [edi + 0x22]
mov edi, dword [esp + 0x38]
cmp eax, dword [esp + 0x10]
jne 0x4a09ee
test dword [ecx + 0x30], 0x100
je 0x4a06ec
mov eax, dword [ecx + 0x4c]
cmp byte [eax + 0x12], 0
je 0x4a0856
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
test cl, 8
jne 0x4a0856
mov eax, dword [eax + 0x30]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a07f8
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x30], 0
jne 0x4a0726
mov edi, dword [esp + 0x2c]
cmp dword [edi], 1
mov edi, dword [esp + 0x38]
jle 0x4a07dc
mov eax, dword [esp + 0x4c]
cmp dword [eax + 0x3c], 0
mov eax, dword [esp + 0x14]
jne 0x4a07dc
test ecx, 0x8000000
jne 0x4a07dc
test dword [eax + 4], 0x8000000
jne 0x4a07dc
mov ecx, dword [esp + 0x44]
test dword [ecx + 0x50], 0x40000
jne 0x4a07dc
mov eax, dword [0x570670]
test eax, eax
je 0x4a0794
push 0x12c
call eax
mov ecx, dword [esi]
add esp, 4
test eax, eax
je 0x4a0796
call fcn.00419390
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
call fcn.0045d940
mov eax, dword [esp + 0x4c]
mov dword [eax + 0x30], 0
jmp 0x4a07f8
mov ecx, dword [esi]
push 0
push 0xc
test ecx, ecx
je 0x4a07a5
call fcn.004190c0
jmp 0x4a07aa
call fcn.00418960
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4a077c
mov eax, dword [esi + 0x8c]
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x8c], ecx
mov dword [ecx + 4], edx
mov dword [ecx + 8], 0x45d9a0
mov dword [eax + 0x30], 0
jmp 0x4a07f8
test edx, edx
jne 0x4a07f8
test dword [eax + 4], 0x40000
je 0x4a07f8
mov ecx, dword [esp + 0x2c]
cmp dword [ecx], 1
je 0x4a085e
test byte [ecx + 0x74], 0x22
jne 0x4a085e
push dword [esp + 0x74]
mov eax, dword [esp + 0x4c]
mov ecx, esi
mov edx, dword [esp + 0x18]
push eax
call fcn.0049c090
add esp, 8
test eax, eax
je 0x4a0824
cmp dword [esi + 0x24], 0
jne 0x4a0479
or eax, 0xffffffff
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
mov ecx, dword [edx + 0x20]
cmp byte [eax + 0x57], 0
mov dword [esp + 0x2c], ecx
jne 0x4a0479
mov eax, dword [esp + 0x7c]
cmp byte [eax], 8
jbe 0x4a0850
mov eax, dword [edx + 0x30]
mov dword [esp + 0xe0], eax
mov edx, dword [esp + 0x48]
jmp 0x4a085a
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
inc edx
cmp dword [eax + 0x34], 0
mov dword [esp + 0x48], edx
jne 0x4a3b2d
cmp edx, dword [ecx]
jl 0x4a0580
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x4a09bb
cmp byte [eax], 0x2c
mov eax, dword [esp + 0x44]
jne 0x4a09bf
test dword [eax + 0x50], 0x8000
jne 0x4a09bf
mov eax, dword [esi]
mov edi, edx
add eax, 0x57
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], eax
nop dword [eax]
nop word [eax + eax]
mov eax, dword [edi + 0x20]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xcc], 0
test eax, eax
je 0x4a0909
cmp dword [eax], 0
jle 0x4a0909
test byte [eax + 0x2c], 0x40
mov dword [esp + 0xd0], 3
jne 0x4a0914
mov dword [esp + 0xd0], 1
mov edx, dword [edi + 0x24]
lea ecx, [esp + 0xbc]
call fcn.0049cbe0
cmp dword [esp + 0xc4], 0
je 0x4a09a5
mov edx, dword [edi + 0x24]
lea eax, [esp + 0xbc]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], 0x49cdc0
mov dword [esp + 0x98], fcn.004182e0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], eax
test edx, edx
je 0x4a098c
lea ecx, [esp + 0x90]
call fcn.00457010
mov edx, dword [esp + 0xd4]
test edx, edx
je 0x4a09a5
mov ecx, dword [esp + 0xbc]
mov ecx, dword [ecx]
call fcn.00418c30
cmp dword [esp + 0xc8], 0
jne 0x4a08c0
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
test dword [eax + 0x50], 0x201
jne 0x4a0a0c
mov ecx, esi
call fcn.0049ff10
test eax, eax
je 0x4a0a0c
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x57], 0
jne 0x4a0479
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x2c], ecx
jmp 0x4a0a10
push dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push dword [ecx]
push eax
push str.expected__d_columns_for__s_but_got__d
push esi
call fcn.0041c7c0
add esp, 0x14
jmp 0x4a0479
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov dword [esp + 0x50], eax
cmp dword [ecx], eax
jle 0x4a13bf
nop
lea eax, [eax + eax*8]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x40]
add ecx, 8
mov dword [esp + 0x30], ecx
or eax, dword [ecx + 0x3c]
jne 0x4a0a58
mov eax, dword [ecx + 8]
test eax, eax
je 0x4a0a58
push dword [ecx + 4]
mov edx, 0x14
mov ecx, esi
push 0x5590e3
push eax
call fcn.0046dcc0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x4a13aa
cmp dword [ecx + 0x18], 0
jne 0x4a13aa
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0
call fcn.0045b7a0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
add dword [esi + 0xe4], eax
test dword [ecx + 0x50], 0x1000
mov ecx, dword [esp + 0x30]
jne 0x4a0ad9
test dword [ecx + 0x28], 0x100
je 0x4a0ab8
mov eax, dword [ecx + 0x44]
cmp byte [eax + 0x12], 0
je 0x4a0ad9
cmp dword [eax], 2
jge 0x4a0ad9
push dword [esp + 0x50]
mov eax, dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x30]
mov edx, dword [esp + 0x64]
push dword [eax + 0x24]
call fcn.0049ce30
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov eax, dword [esp + 0x44]
test dword [eax + 0x50], 0x4000000
jne 0x4a0c4e
test dword [ecx + 0x28], 0x108
jne 0x4a0c4e
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov eax, edx
mov dword [esp + 0x24], edx
test edx, edx
je 0x4a0b3e
nop dword [eax + eax]
test byte [eax + 4], 9
jne 0x4a0c4e
mov edx, dword [eax + 0x34]
test edx, edx
je 0x4a0b2a
cmp byte [eax], 0x87
jne 0x4a0c4e
cmp dword [eax + 0x44], 0
jne 0x4a0c4e
mov eax, edx
test eax, eax
jne 0x4a0b10
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x30]
test eax, eax
je 0x4a0bac
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
test ecx, ecx
jle 0x4a0bac
lea esi, [eax + 0x18]
movzx eax, word [esi]
test ax, ax
je 0x4a0b9c
add eax, 0xffff
mov edx, 0x3f
cmp ax, 0x40
jae 0x4a0b7b
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 + 0x64], eax
or dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x10]
add esi, 0x14
sub ecx, 1
mov dword [esp + 0x10], ecx
jne 0x4a0b60
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
movsx eax, word [eax + 0x22]
mov dword [esp + 0x10], eax
test eax, eax
jle 0x4a0c4e
mov edi, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, eax
nop dword [eax]
xor ecx, ecx
cmp esi, 0x3f
jae 0x4a0bf2
mov eax, esi
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x20]
cmovae edx, ecx
jmp 0x4a0bf7
mov edx, connect
and ecx, dword [esp + 0x64]
and edx, dword [esp + 0x34]
or ecx, edx
jne 0x4a0c38
mov edx, dword [esp + 0x20]
mov ecx, edi
nop dword [eax]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + edx + 8]
cmp byte [eax], 0x79
je 0x4a0c2d
and dword [eax + 4], 0xfff7dfff
mov byte [eax], 0x79
or dword [ecx + 4], 0x1000000
mov ecx, dword [ecx + 0x34]
test ecx, ecx
jne 0x4a0c10
mov eax, dword [esp + 0x20]
inc esi
add eax, 0x14
mov dword [esp + 0x20], eax
cmp esi, dword [esp + 0x10]
jl 0x4a0bd0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x104]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 8]
mov dword [esi + 0x104], eax
lea eax, [edx + edx*8]
lea ecx, [ecx + eax*8]
add ecx, 8
mov dword [esp + 0x18], ecx
test dword [ecx + 0x28], 0x100
je 0x4a0c9f
mov eax, dword [ecx + 0x44]
mov dl, byte [eax + 0x12]
test dl, dl
je 0x4a0cfe
cmp dword [eax], 2
jl 0x4a0c9b
cmp dl, 2
jne 0x4a0cfe
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x2c]
test byte [eax + 0x2c], 0x40
jne 0x4a0cfe
mov eax, dword [esi]
test dword [eax + 0x50], 0x2000000
jne 0x4a0cfe
mov eax, dword [esp + 0x2c]
push dword [eax]
lea eax, [edx + 1]
mov edx, ecx
mov ecx, dword [esp + 0x30]
push eax
call fcn.0049fe10
add esp, 8
test eax, eax
jne 0x4a0cfe
cmp dword [esp + 0x50], eax
jne 0x4a0d4c
mov eax, dword [esp + 0x2c]
cmp dword [eax], 1
je 0x4a0d88
test byte [eax + 0x74], 2
jne 0x4a0d88
mov ecx, dword [esp + 0x14]
test dword [ecx + 4], 0x10000000
je 0x4a0d88
mov eax, dword [esp + 0x30]
test dword [eax + 0x28], 0x100
je 0x4a0fec
mov ecx, dword [eax + 0x44]
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + 4]
test edx, edx
jle 0x4a0fec
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x4a0f2b
push 0
push edx
push eax
mov edx, 0xa
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a0f5e
mov ecx, dword [esp + 0x14]
test dword [ecx + 4], 0x10000000
jne 0x4a0cfe
mov eax, dword [esp + 0x18]
add eax, 0x24
test byte [eax], 0x22
jne 0x4a0cfe
mov ecx, dword [esp + 0x10]
nop dword [eax]
test ecx, ecx
je 0x4a0d88
sub eax, 0x48
dec ecx
cmp dword [eax - 0x10], 0
jne 0x4a0cfe
test byte [eax], 0x22
je 0x4a0d70
jmp 0x4a0cfe
mov edx, dword [edi + 0x6c]
inc dword [esi + 0x2c]
inc edx
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], edx
mov dword [eax + 0x1c], ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a0dc5
push edx
push 0
push dword [esp + 0x18]
mov edx, 0xb
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x4a0df8
mov esi, 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], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x30]
push ecx
push str.CO_ROUTINE___S
push 1
mov eax, dword [ecx + 0x1c]
push esi
mov dword [ecx + 0x18], edx
mov byte [esp + 0xcc], 0xd
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
call fcn.004425b0
mov edx, dword [esp + 0x6c]
lea eax, [esp + 0xcc]
push eax
mov ecx, esi
call fcn.004a0310
mov edx, dword [esp + 0x44]
add esp, 0x14
mov eax, dword [esp + 0x5c]
mov ecx, dword [edx + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
or dword [edx + 0x28], 0x20
mov eax, dword [esp + 0xc8]
mov dword [edx + 0x20], eax
mov ecx, dword [edi + 0x6c]
mov edx, dword [edx + 0x1c]
cmp dword [edi + 0x70], ecx
jg 0x4a0ea3
push 0
push 0
push edx
mov edx, 0x44
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a0ed6
mov esi, 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], 0x44
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 eax, dword [edi + 0xc]
mov byte [eax + 0x13], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x1c], 0
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x4a0f09
mov eax, 0x5732c8
mov dword [eax], edx
mov byte [esi + 0x13], 0
mov dword [esi + 0x1c], 0
jmp 0x4a136d
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov dword [eax], edx
mov byte [esi + 0x13], 0
mov dword [esi + 0x1c], 0
jmp 0x4a136d
mov esi, 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], esi
mov esi, dword [esp + 0x1c]
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 [esp + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x18], eax
cmp eax, edx
je 0x4a0fd7
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a0fa4
push 0
push edx
push eax
mov edx, 0x73
mov ecx, edi
call fcn.00441fb0
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov ax, word [eax + 0x10]
mov word [ecx + 2], ax
jmp 0x4a136d
mov esi, 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], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov ax, word [eax + 0x10]
mov word [ecx + 2], ax
jmp 0x4a136d
push dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
mov edx, eax
push 0
call fcn.0049fe10
mov edx, eax
add esp, 8
mov dword [esp + 0x24], edx
test edx, edx
je 0x4a110e
mov eax, dword [edx + 0x18]
mov dword [esp + 0x18], eax
test eax, eax
je 0x4a107b
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a1044
push 0
push eax
push dword [esp + 0x18]
mov edx, 0xa
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x4a107b
mov esi, 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], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x2c]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x4a10c3
push 0
push dword [esp + 0x14]
mov edx, 0x73
mov ecx, edi
push eax
call fcn.00441fb0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
mov eax, dword [edx + 0x14]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x4a136d
mov esi, 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], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x73
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edx + 0x14]
mov ecx, dword [esp + 0x5c]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x4a136d
inc dword [esi + 0x2c]
xor eax, eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x2c]
mov dword [edx + 0x1c], eax
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x20], ecx
cmp dword [edi + 0x70], ecx
jg 0x4a114c
push 0
push 0
push 0
mov edx, 9
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x20], eax
jmp 0x4a1187
mov esi, 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], 9
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 [esp + 0x20]
inc eax
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x28]
or eax, 0x10
mov dword [edx + 0x28], eax
test al, 8
jne 0x4a11fa
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x64], ecx
cmp dword [edi + 0x70], ecx
jg 0x4a11c3
push 0
push 0
push 0
mov edx, 0xf
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x4a11fa
mov esi, 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], 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 [edx + 0x2c]
push edx
push str.MATERIALIZE___S
push 1
push esi
mov byte [esp + 0xcc], 0xc
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
call fcn.004425b0
mov edx, dword [esp + 0x6c]
lea eax, [esp + 0xcc]
push eax
mov ecx, esi
call fcn.004a0310
mov edx, dword [esp + 0x44]
add esp, 0x14
mov eax, dword [esp + 0x5c]
mov ecx, dword [edx + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x26], ax
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4a129d
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a128d
mov eax, 0x5732c0
jmp 0x4a1296
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0x1c]
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x10], ecx
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x4a12d1
push 0
push eax
push dword [esp + 0x18]
mov edx, 0x43
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x4a1308
mov esi, 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], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a131e
mov eax, 0x5732c0
jmp 0x4a132b
mov eax, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [eax + 8], ecx
mov byte [esi + 0x13], 0
mov dword [esi + 0x1c], 0
mov eax, dword [edx + 0x28]
and eax, 0x108
cmp eax, 0x100
jne 0x4a136d
mov ecx, dword [edx + 0x44]
mov eax, dword [edx + 0x18]
mov dword [ecx + 4], eax
mov eax, dword [edx + 0x1c]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x5c]
mov ax, word [eax + 2]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x57], 0
jne 0x4a0479
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], 0
call fcn.0045b7a0
mov eax, dword [esi + 0xe4]
sub eax, dword [esp + 0x10]
mov dword [esi + 0xe4], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 0x104], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x50], eax
cmp eax, dword [ecx]
jl 0x4a0a20
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x64], eax
mov al, byte [ecx + 4]
mov ecx, dword [ecx + 4]
and al, 1
mov byte [esp + 0xb0], al
mov eax, ecx
and al, 9
cmp al, 1
mov eax, dword [esp + 0x30]
jne 0x4a14f1
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x18], edx
test edx, edx
jne 0x4a141a
test eax, eax
jne 0x4a14f1
jmp 0x4a14b6
test eax, eax
je 0x4a14f1
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0x30]
mov eax, dword [eax]
cmp eax, dword [esi]
mov esi, dword [esp + 0x1c]
jne 0x4a14ed
mov dword [esp + 0x10], 0
test eax, eax
jle 0x4a14b2
lea ecx, [edx + 8]
mov edx, dword [esp + 0x30]
add edx, 8
mov dword [esp + 0x68], ecx
mov dword [esp + 0x24], edx
nop dword [eax]
mov al, byte [ecx + 8]
cmp al, byte [edx + 8]
jne 0x4a14ed
push 0xffffffffffffffff
push dword [edx]
mov edx, dword [ecx]
xor ecx, ecx
call fcn.00465000
add esp, 8
test eax, eax
jne 0x4a14ed
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
inc eax
mov ecx, dword [esp + 0x68]
add edx, 0x14
add ecx, 0x14
mov dword [esp + 0x10], eax
cmp eax, dword [edi]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x68], ecx
jl 0x4a1460
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x44], 0
jne 0x4a14ed
and ecx, 0xfffffffe
mov dword [edx + 4], ecx
mov edx, eax
mov ecx, dword [esp + 0x44]
push 0
call fcn.0045cc70
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x54], eax
mov byte [esp + 0xb0], 2
or dword [ecx + 4], 8
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4a1612
push dword [eax]
mov ecx, esi
push 0
call fcn.00496590
mov dword [esp + 0x28], eax
add esp, 8
mov eax, dword [esi + 0x28]
mov dword [esp + 0xe8], eax
mov dword [esp + 0x10], eax
inc eax
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x34], edx
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
inc eax
add eax, ecx
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], edx
jg 0x4a1564
push 0
push eax
push dword [esp + 0x18]
mov edx, 0x76
mov ecx, edi
call fcn.00441fb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x34], edx
jmp 0x4a159b
mov esi, dword [esp + 0x10]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x76
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 0x4a15c6
mov ecx, dword [esp + 0x20]
mov edx, 0xfffffff8
push ecx
mov ecx, dword [edi]
call fcn.00442b90
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0xf4], edx
jmp 0x4a161d
test edx, edx
jns 0x4a15ce
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]
mov ecx, dword [esp + 0x20]
je 0x4a15fe
push 0xfffffffffffffff8
push ecx
mov edx, eax
mov ecx, edi
call fcn.00442ca0
mov edx, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0xf4], edx
jmp 0x4a161d
test ecx, ecx
je 0x4a1609
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf8
mov dword [esp + 0xf4], edx
jmp 0x4a161d
mov dword [esp + 0xf4], 0xffffffff
mov ecx, dword [esp + 0x7c]
cmp byte [ecx], 0xc
jne 0x4a173a
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
mov eax, dword [ecx + 4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x4a1654
push 0
push edx
push eax
mov edx, 0x76
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a1687
mov esi, 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], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x76
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x14]
test dword [edx + 4], 0x800
je 0x4a173e
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
lea ecx, [eax - 1]
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x4a1716
mov edi, dword [esp + 0x30]
lea edx, [ecx + ecx*4]
mov esi, dword [esp + 0x44]
shl edx, 2
mov dword [esp + 0x20], edx
nop dword [eax + eax]
test byte [edx + edi + 0x14], 0x40
jne 0x4a170e
mov eax, dword [edx + edi + 8]
test eax, eax
je 0x4a16e0
mov edx, eax
mov ecx, esi
call fcn.0045c540
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, dword [edx + edi + 0xc]
test eax, eax
je 0x4a16f9
mov edx, eax
mov ecx, esi
call fcn.00418c30
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov eax, dword [edi]
dec ecx
dec eax
mov dword [esp + 0x34], ecx
sub edx, 0x14
mov dword [edi], eax
mov dword [esp + 0x20], edx
test ecx, ecx
jg 0x4a16c0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
xor edx, edx
test eax, eax
jle 0x4a173a
mov eax, dword [esp + 0x30]
lea ecx, [eax + 8]
test byte [ecx + 0xc], 0x40
jne 0x4a1732
mov eax, dword [ecx]
mov byte [eax], 0x79
mov eax, dword [esp + 0x30]
inc edx
add ecx, 0x14
cmp edx, dword [eax]
jl 0x4a1723
mov edx, dword [esp + 0x14]
dec dword [esi + 0x38]
test dword [edx + 4], 0x4000
mov eax, dword [esi + 0x38]
mov dword [esp + 0x8c], eax
jne 0x4a175d
mov ecx, 0x140
mov word [edx + 2], cx
cmp dword [edx + 0x3c], 0
je 0x4a1772
push eax
mov ecx, esi
call fcn.00498030
mov edx, dword [esp + 0x18]
add esp, 4
cmp dword [edx + 8], 0
jne 0x4a17ac
cmp dword [esp + 0xf4], 0
jl 0x4a17ac
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a1791
mov eax, 0x5732c0
jmp 0x4a17a1
mov eax, dword [esp + 0xf4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
mov byte [eax], 0x77
or byte [esp + 0x100], 1
test byte [edx + 4], 1
je 0x4a18cf
mov eax, dword [esi + 0x28]
mov ecx, esi
mov dword [esp + 0xb4], eax
inc eax
mov dword [esi + 0x28], eax
mov edx, dword [edx + 0x1c]
push 0
push 0
call fcn.00496590
mov edx, dword [edi + 0x6c]
add esp, 8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], edx
cmp dword [edi + 0x70], edx
jg 0x4a180c
push 0
push 0
push eax
mov edx, 0x76
mov ecx, edi
call fcn.00441fb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x34], edx
jmp 0x4a1843
mov esi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x76
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]
mov eax, edx
cmp byte [ecx + 0x57], 0
je 0x4a1867
mov ecx, dword [esp + 0x20]
mov edx, 0xfffffff8
push ecx
mov ecx, dword [edi]
call fcn.00442b90
mov edx, dword [esp + 0x38]
add esp, 4
jmp 0x4a18a3
test edx, edx
jns 0x4a186f
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]
mov ecx, dword [esp + 0x20]
je 0x4a1898
push 0xfffffffffffffff8
push ecx
mov edx, eax
mov ecx, edi
call fcn.00442ca0
mov edx, dword [esp + 0x3c]
add esp, 8
jmp 0x4a18a3
test ecx, ecx
je 0x4a18a3
mov dword [eax + 0x10], ecx
mov byte [eax + 1], 0xf8
mov dword [esp + 0xb8], edx
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4a18c1
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x14]
mov byte [esp + 0xb1], 3
jmp 0x4a18d7
mov byte [esp + 0xb1], 0
cmp dword [esp + 0x74], 0
mov eax, dword [esp + 0x54]
jne 0x4a1c27
test eax, eax
jne 0x4a1c27
mov cx, word [edx + 4]
mov eax, 0x4000
and cx, ax
mov dword [esp + 0x18], 0x100
xor eax, eax
cmp byte [esp + 0xb0], al
cmovne eax, dword [esp + 0x18]
or cx, ax
movzx eax, cx
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x44]
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a1930
mov ecx, esi
call fcn.004c3880
mov edx, dword [esp + 0x14]
movsx eax, word [edx + 2]
mov ecx, esi
push eax
push dword [esp + 0x1c]
push edx
push dword [edx + 0x1c]
mov edx, dword [esp + 0x3c]
push dword [esp + 0xf0]
push dword [esp + 0x8c]
call fcn.004bf730
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x74], ecx
test ecx, ecx
je 0x4a0479
mov edx, dword [esp + 0x14]
movzx eax, word [ecx + 0x34]
cmp ax, word [edx + 2]
jge 0x4a1979
mov word [edx + 2], ax
cmp byte [esp + 0xb0], 0
je 0x4a19a1
mov cl, byte [ecx + 0x2f]
movzx edx, byte [esp + 0xb1]
test cl, cl
movzx eax, cl
mov ecx, dword [esp + 0x74]
cmovne edx, eax
mov byte [esp + 0xb1], dl
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4a1a2a
mov al, byte [ecx + 0x2d]
movsx ecx, al
test al, al
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmovns eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xe4], eax
mov dword [esp + 0x20], eax
test byte [ecx + 0x30], 4
jne 0x4a19e5
mov edi, dword [ecx + 0x1c]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x38]
jmp 0x4a1a0d
movzx eax, byte [ecx + 0x2c]
lea eax, [eax + eax*2]
shl eax, 5
cmp dword [eax + ecx + 0x2d0], 0
je 0x4a19fe
mov eax, dword [ecx + 0x1c]
jmp 0x4a1a05
mov eax, dword [eax + ecx + 0x2a8]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x64]
mov dword [esp + 0xfc], esi
xor esi, esi
cmp eax, dword [edx]
cmove edx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xf4]
test eax, eax
js 0x4a1a70
test edx, edx
jne 0x4a1a70
mov edx, dword [edi]
cmp byte [edx + 0x57], 0
jne 0x4a1a70
mov ecx, dword [edi]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.00442b90
mov ecx, dword [esp + 0x78]
add esp, 4
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x10], 0
je 0x4a1be9
mov eax, dword [esi + 0x38]
inc dword [esi + 0x2c]
lea edx, [eax - 1]
sub eax, 2
mov dword [esp + 0x10], eax
dec eax
push edx
mov dword [esp + 0x24], eax
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x2c]
push eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.004c7240
mov ecx, dword [edi + 0x6c]
add esp, 0xc
mov edx, dword [esp + 0x20]
cmp dword [edi + 0x70], ecx
jg 0x4a1ad1
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a1b00
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x60]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a1b1e
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a1b27
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
push dword [esp + 0x20]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xb4]
push dword [esp + 0x14]
mov ecx, esi
mov dword [esp + 0x104], 0
push dword [esp + 0x84]
push eax
lea eax, [esp + 0xf0]
push eax
push 0xffffffffffffffff
call fcn.004954f0
mov ecx, dword [edi + 0xc]
add esp, 0x18
mov edx, dword [esp + 0x10]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a1b7f
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a1b88
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x4a1bb1
push 0
push 0
push edx
mov edx, 0x43
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x4a3a6a
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 + 0x20]
mov dword [eax + ecx*4], 0x43
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a3a6a
push dword [ecx + 0x20]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xb4]
push dword [ecx + 0x1c]
mov ecx, esi
push dword [esp + 0x84]
push eax
lea eax, [esp + 0xf0]
push eax
push 0xffffffffffffffff
call fcn.004954f0
mov ecx, dword [esp + 0x8c]
add esp, 0x18
call fcn.004c07d0
jmp 0x4a3a8d
mov dword [esp + 0x4c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
test eax, eax
je 0x4a1d61
mov ecx, dword [edx + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x4a1c65
add ecx, 0x1a
xor esi, esi
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], si
test eax, eax
jg 0x4a1c53
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
test eax, eax
jle 0x4a1c88
add ecx, 0x1a
xor esi, esi
lea ecx, [ecx + 0x14]
dec eax
mov word [ecx - 0x14], si
test eax, eax
jg 0x4a1c72
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
cmp word [edx + 2], 0x42
jle 0x4a1c98
mov eax, 0x42
mov word [edx + 2], ax
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4a1d67
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4a1d67
xor edx, edx
test eax, eax
jle 0x4a1ce3
mov edi, dword [esp + 0x54]
xor ecx, ecx
nop dword [eax]
mov eax, dword [esp + 0xe0]
lea ecx, [ecx + 0x14]
inc edx
mov al, byte [ecx + eax - 4]
and al, 1
mov byte [edi + ecx - 4], al
mov eax, dword [edi]
cmp edx, eax
jl 0x4a1cc0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4a1d67
cmp eax, dword [edx]
jne 0x4a1d67
mov dword [esp + 0x10], 0
test eax, eax
jle 0x4a1d57
add ecx, 8
add edx, 8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], edx
nop dword [eax]
mov al, byte [ecx + 8]
cmp al, byte [edx + 8]
jne 0x4a1d67
push 0xffffffffffffffff
push dword [edx]
mov edx, dword [ecx]
xor ecx, ecx
call fcn.00465000
add esp, 8
test eax, eax
jne 0x4a1d67
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
inc eax
mov ecx, dword [esp + 0x34]
add edx, 0x14
add ecx, 0x14
mov dword [esp + 0x10], eax
cmp eax, dword [edi]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ecx
jl 0x4a1d10
mov dword [esp + 0x68], 1
jmp 0x4a1d67
xor eax, eax
mov word [edx + 2], ax
mov eax, dword [esi + 0x38]
mov ecx, dword [esp + 0x44]
dec eax
push 0
push 0x2c
mov dword [esp + 0x64], eax
mov dword [esi + 0x38], eax
call fcn.004190c0
mov ecx, eax
add esp, 8
mov dword [esp + 0x28], ecx
test ecx, ecx
je 0x4a1dfc
push 0x2c
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x570670]
add esp, 0xc
test eax, eax
je 0x4a1e57
push 0x12c
call eax
mov ecx, dword [esi]
add esp, 4
test eax, eax
je 0x4a1e59
call fcn.00419390
mov eax, dword [esp + 0x28]
mov ecx, dword [esi]
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 0x14]
test edx, edx
je 0x4a1ddd
call fcn.00418c30
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x4a1ded
call fcn.00418c30
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.00418c30
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x57], 0
jne 0x4a0479
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
mov edx, dword [esp + 0x54]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x2c]
movlpd qword [esp + 0xc8], xmm0
movlpd qword [esp + 0xd0], xmm0
movlpd qword [esp + 0xd8], xmm0
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
test edx, edx
je 0x4a1e9b
mov eax, dword [edx]
jmp 0x4a1e9d
mov ecx, dword [esi]
push 0
push 0xc
test ecx, ecx
je 0x4a1e68
call fcn.004190c0
jmp 0x4a1e6d
call fcn.00418960
mov edx, eax
add esp, 8
test edx, edx
je 0x4a1dbf
mov eax, dword [esi + 0x8c]
mov ecx, dword [esp + 0x28]
mov dword [edx], eax
mov dword [esi + 0x8c], edx
mov dword [edx + 4], ecx
mov dword [edx + 8], 0x49fed0
jmp 0x4a1dfc
xor eax, eax
mov dword [ecx + 0x10], edx
mov edx, dword [esp + 0x30]
mov word [ecx + 2], ax
test edx, edx
je 0x4a1f3a
xor ecx, ecx
lea eax, [edx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp dword [edx], ecx
jle 0x4a1f3a
mov edi, edx
mov edx, dword [eax]
lea esi, [esp + 0xbc]
mov dword [esp + 0x94], 0x465d80
mov dword [esp + 0x98], 0x4572e0
mov dword [esp + 0x9c], 0x4572f0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], esi
mov dword [esp + 0x90], 0
test edx, edx
je 0x4a1f22
lea ecx, [esp + 0x90]
call fcn.00457010
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
inc ecx
add eax, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
cmp ecx, dword [edi]
jl 0x4a1ec3
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0xe0]
test edx, edx
je 0x4a1fd7
xor ecx, ecx
lea eax, [edx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp dword [edx], ecx
jle 0x4a1fd7
mov edi, edx
nop dword [eax]
mov edx, dword [eax]
lea esi, [esp + 0xbc]
mov dword [esp + 0x94], 0x465d80
mov dword [esp + 0x98], 0x4572e0
mov dword [esp + 0x9c], 0x4572f0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], esi
mov dword [esp + 0x90], 0
test edx, edx
je 0x4a1fbf
lea ecx, [esp + 0x90]
call fcn.00457010
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
inc ecx
add eax, 0x14
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], eax
cmp ecx, dword [edi]
jl 0x4a1f60
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
test ecx, ecx
je 0x4a2091
cmp dword [esp + 0x54], 0
je 0x4a203e
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x98], xmm0
movlpd qword [esp + 0xa0], xmm0
mov dword [esp + 0x90], esi
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x94], 0x49fcb0
mov dword [esp + 0xa8], eax
test edx, edx
je 0x4a2037
lea ecx, [esp + 0x90]
call fcn.00457010
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x78], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0x94], 0x465d80
mov edx, ecx
mov dword [esp + 0x98], 0x4572e0
lea ecx, [esp + 0x90]
mov dword [esp + 0x9c], 0x4572f0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0x90], 0
call fcn.00457010
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x28], 0
jne 0x4a2181
cmp dword [eax + 0x2c], 0
jne 0x4a2181
cmp dword [ecx + 0x24], 1
jne 0x4a2181
mov eax, dword [ecx + 0x20]
mov edx, dword [eax]
mov dword [esp + 0x10], edx
mov eax, dword [edx + 0x14]
test eax, eax
je 0x4a2181
cmp dword [eax], 1
jne 0x4a2181
test dword [edx + 4], 0x1000000
jne 0x4a2181
mov eax, dword [esp + 0x44]
test dword [eax + 0x50], 0x10000
jne 0x4a2181
mov eax, dword [edx + 8]
mov edx, 0x564cc8
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.0041ca50
test eax, eax
jne 0x4a2132
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 8]
call fcn.0045e050
neg eax
mov byte [esp + 0x43], 1
sbb al, al
and eax, 0xffffff02
mov dword [esp + 0x24], eax
jmp 0x4a214e
mov ecx, dword [esp + 0x18]
mov edx, 0x564ccc
call fcn.0041ca50
test eax, eax
jne 0x4a217d
mov byte [esp + 0x24], 1
mov byte [esp + 0x43], 2
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
push 0
mov edx, dword [edx + 0x14]
call fcn.0045cc70
mov ecx, eax
add esp, 4
mov dword [esp + 0x88], ecx
test ecx, ecx
je 0x4a2177
mov eax, dword [esp + 0x24]
mov byte [ecx + 0x10], al
mov ecx, dword [esp + 0x28]
jmp 0x4a2186
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x43], 0
lea edx, [esp + 0xbc]
call fcn.0049eb60
mov eax, dword [esp + 0x44]
cmp byte [eax + 0x57], 0
jne 0x4a3b10
cmp dword [esp + 0x54], 0
je 0x4a337a
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x80], 0
mov dword [esp + 0x10], 0
cmp dword [ecx + 0x24], 1
jne 0x4a22b8
mov eax, dword [ecx + 0x20]
cmp dword [eax + 8], 0
jl 0x4a22b8
mov eax, dword [eax]
test eax, eax
je 0x4a22b8
test dword [eax + 4], 0x1000
jne 0x4a22b8
mov edx, dword [eax + 0x14]
test edx, edx
je 0x4a22b8
mov edx, dword [edx + 8]
test edx, edx
je 0x4a2218
mov ecx, dword [esp + 0x44]
push 0
push 0
call fcn.0045c7e0
add esp, 8
mov dword [esp + 0x20], eax
jmp 0x4a2220
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
push 0
call fcn.0045cc70
mov ecx, eax
add esp, 4
mov dword [esp + 0x80], ecx
test ecx, ecx
jne 0x4a2253
mov edx, dword [esp + 0x20]
mov ecx, dword [esi]
call fcn.0045d400
mov dword [esp + 0x80], eax
jmp 0x4a22a7
mov eax, dword [ecx]
lea edx, [eax + 1]
cmp dword [ecx + 4], edx
jge 0x4a2277
mov eax, dword [esp + 0x20]
mov edx, ecx
mov ecx, dword [esi]
push eax
call fcn.0045d470
add esp, 4
mov dword [esp + 0x80], eax
jmp 0x4a22a7
movups xmm0, xmmword [0x55b010]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x80]
mov dword [eax], edx
mov eax, dword [0x55b020]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x28]
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
mov edx, dword [esp + 0x54]
mov dword [ecx + 4], eax
inc dword [esi + 0x28]
push dword [ecx + 0x18]
mov ecx, esi
push 0
call fcn.00496590
mov ecx, dword [edi + 0x6c]
add esp, 8
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], ecx
movzx edx, word [eax + 2]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x70], ecx
jg 0x4a230e
push 0
push edx
push eax
mov edx, 0x77
mov ecx, edi
call fcn.00441fb0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x24], edx
jmp 0x4a2345
mov esi, 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], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x24]
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 0x4a2363
mov edx, dword [esp + 0x70]
push edx
mov edx, 0xfffffff8
call fcn.00442b90
add esp, 4
jmp 0x4a239b
test edx, edx
jns 0x4a236b
mov eax, dword [edi + 0x6c]
dec eax
mov edx, dword [esp + 0x70]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4a2390
push 0xfffffffffffffff8
push edx
mov edx, eax
mov ecx, edi
call fcn.00442ca0
add esp, 8
jmp 0x4a239b
test edx, edx
je 0x4a239b
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov eax, dword [esi + 0x2c]
mov edx, dword [esp + 0x54]
inc eax
mov dword [esp + 0x3c], eax
inc eax
mov dword [esp + 0x6c], eax
lea ecx, [eax + 2]
mov eax, dword [esi + 0x38]
dec eax
mov dword [esi + 0x2c], ecx
mov dword [esp + 0x74], eax
dec eax
mov dword [esi + 0x38], eax
mov dword [esp + 0x48], ecx
add ecx, dword [edx]
mov dword [esp + 0x20], eax
mov dword [esi + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x84], eax
mov eax, dword [edx]
add eax, ecx
mov dword [esi + 0x2c], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a2401
push 0
push dword [esp + 0x70]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.00441fb0
mov edx, dword [esp + 0x60]
add esp, 0xc
jmp 0x4a2438
mov esi, dword [esp + 0x6c]
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], esi
mov esi, dword [esp + 0x1c]
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 + 0x48]
mov ecx, dword [edi + 0x6c]
add edx, eax
cmp dword [edi + 0x70], ecx
jg 0x4a2462
mov eax, dword [esp + 0x48]
mov ecx, edi
push edx
inc eax
mov edx, 0x4b
push eax
push 0
call fcn.00441fb0
add esp, 0xc
jmp 0x4a249a
mov esi, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
inc esi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x4b
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a24bd
push 0
push dword [esp + 0x24]
mov edx, 0xa
mov ecx, edi
push dword [esp + 0x50]
call fcn.00441fb0
add esp, 0xc
jmp 0x4a24f0
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
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 + 0x68]
mov edx, 0x80
neg ecx
mov eax, 0x40
push 0
sbb ecx, ecx
and ecx, 0x200
cmp byte [esp + 0xb4], 2
cmove eax, edx
mov edx, dword [esp + 0x30]
or cx, ax
or cx, word [esp + 0x14]
movzx eax, cx
mov ecx, esi
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
push eax
push dword [esp + 0x64]
push dword [esp + 0x8c]
call fcn.004bf730
mov edx, eax
add esp, 0x18
mov dword [esp + 0x34], edx
test edx, edx
jne 0x4a256f
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4a3b0c
mov ecx, dword [esp + 0x44]
mov edx, eax
call fcn.0045d940
jmp 0x4a3b0c
cmp dword [esi + 0x48], 0
je 0x4a25d1
mov ecx, dword [esp + 0x28]
cmp word [ecx + 2], 0
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x18], eax
jbe 0x4a25c1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x28]
mov edx, dword [eax]
dec edx
cmp dword [ecx + 0x1c], 0
jle 0x4a25ba
mov edi, dword [ecx + 0x14]
mov esi, dword [ecx + 0x1c]
add edi, 0xe
nop
movsx eax, word [edi]
lea edi, [edi + 0x10]
cmp eax, edx
cmovle eax, edx
mov edx, eax
sub esi, 1
jne 0x4a25a0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
lea eax, [edx + 1]
mov word [ecx + 2], ax
lea edx, [esp + 0xbc]
call fcn.0049eb60
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 0x18]
xor ecx, ecx
add dword [esi + 0x2c], eax
movzx eax, byte [edx + 0x2f]
mov dword [esp + 0x18], eax
mov al, byte [edx + 0x2d]
test al, al
movsx edx, al
mov eax, dword [esp + 0x54]
cmovns ecx, edx
cmp ecx, dword [eax]
jne 0x4a2613
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], 0
jmp 0x4a2994
cmp byte [esp + 0xb0], 0
je 0x4a262c
mov eax, dword [esp + 0x14]
test byte [eax + 4], 1
mov eax, str.DISTINCT
je 0x4a2631
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push esi
call fcn.004425b0
mov eax, dword [esp + 0x64]
add esp, 0x10
mov dword [esp + 0x78], 1
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x58], eax
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x50], ecx
mov edi, dword [eax + 0x18]
test edi, edi
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x38]
jle 0x4a26a8
mov esi, dword [eax + 0x14]
mov edi, edx
add esi, 0xe
movsx ecx, word [esi]
lea eax, [edi + 1]
cmp ecx, edx
lea esi, [esi + 0x10]
cmovl eax, edi
mov edi, eax
lea eax, [edx + 1]
cmovl eax, edx
sub dword [esp + 0x4c], 1
mov edx, eax
jne 0x4a2677
mov esi, dword [esp + 0x1c]
mov ecx, edi
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x50], ecx
cmp ecx, 1
jne 0x4a26d3
mov al, byte [esi + 0x13]
test al, al
jne 0x4a26be
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4a26f6
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0xa4]
mov dword [esp + 0x2c], eax
jmp 0x4a26f9
mov edx, dword [esi + 0x20]
mov dword [esp + 0x2c], edx
cmp ecx, dword [esi + 0x1c]
jg 0x4a26ea
sub dword [esi + 0x1c], ecx
lea eax, [edx + ecx]
mov dword [esi + 0x20], eax
jmp 0x4a26f9
mov eax, dword [esi + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esi + 0x2c], eax
mov edx, dword [esp + 0x54]
mov ecx, esi
push 0
push 0
push dword [esp + 0x34]
call fcn.00463ff0
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov dword [esp + 0x4c], 0
cmp dword [ecx + 0x18], 0
mov byte [ecx], 1
jle 0x4a2772
xor edi, edi
nop word [eax + eax]
mov edx, dword [ecx + 0x14]
movsx eax, word [edx + edi + 0xe]
cmp eax, dword [esp + 0x58]
jl 0x4a275d
mov eax, dword [esp + 0x58]
mov ecx, esi
add eax, dword [esp + 0x2c]
mov edx, dword [edx + edi + 4]
push eax
call fcn.00463e50
mov ecx, dword [esp + 0x2c]
add esp, 4
inc dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
add edi, 0x10
inc eax
mov dword [esp + 0x4c], eax
cmp eax, dword [ecx + 0x18]
jl 0x4a2730
mov edi, dword [esp + 0x38]
mov byte [ecx], 0
mov al, byte [esi + 0x13]
test al, al
jne 0x4a2785
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
jmp 0x4a2794
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x58], eax
cmp dword [edi + 0x70], ecx
jg 0x4a27bf
mov edx, dword [esp + 0x50]
mov ecx, edi
push eax
push edx
push dword [esp + 0x34]
mov edx, 0x61
call fcn.00441fb0
mov edx, dword [esp + 0x64]
add esp, 0xc
jmp 0x4a27f2
mov edx, 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], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x58]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x6c]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
cmp dword [edi + 0x70], ecx
jg 0x4a281e
push 0
push edx
push eax
mov edx, 0x8b
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x64]
add esp, 0xc
jmp 0x4a2851
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x38]
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 0x4a2869
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x4a2869
movzx eax, al
mov dword [esi + eax*4 + 0xa4], edx
inc byte [esi + 0x13]
mov eax, dword [esp + 0x50]
cmp eax, 1
jne 0x4a2890
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4a289f
mov al, byte [esi + 0x13]
cmp al, 8
jae 0x4a289f
movzx eax, al
mov dword [esi + eax*4 + 0xa4], ecx
inc byte [esi + 0x13]
jmp 0x4a289f
cmp eax, dword [esi + 0x1c]
jle 0x4a289f
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x20], eax
mov ecx, dword [esp + 0x34]
call fcn.004c07d0
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x28]
mov dword [esp + 0x4c], edx
mov dword [eax + 8], edx
mov al, byte [esi + 0x13]
inc dword [esi + 0x28]
test al, al
jne 0x4a28c9
mov eax, dword [esi + 0x2c]
inc eax
mov dword [esi + 0x2c], eax
jmp 0x4a28d8
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0xa4]
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x58], eax
cmp dword [edi + 0x70], ecx
jg 0x4a28ff
mov edx, dword [esp + 0x50]
mov ecx, edi
push edx
push eax
push dword [esp + 0x54]
mov edx, 0x79
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2932
mov esi, 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 + 0x58]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x79
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [edi + 0x70], ecx
jg 0x4a2959
push 0
push dword [esp + 0x60]
mov ecx, edi
push edx
mov edx, 0x22
call fcn.00441fb0
add esp, 0xc
jmp 0x4a298c
mov esi, 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 + 0x5c]
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 eax, dword [esp + 0x28]
mov byte [eax + 1], 1
cmp dword [esi + 0x48], 0
je 0x4a2a05
cmp dword [eax + 0x24], 0
xorps xmm0, xmm0
movaps xmmword [esp + 0x90], xmm0
movq qword [esp + 0xa0], xmm0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x94], 0x49ec20
jle 0x4a2a05
mov esi, dword [esp + 0x28]
xor ecx, ecx
mov dword [esp + 0x50], ecx
xor edi, edi
mov eax, dword [esi + 0x20]
mov edx, dword [ecx + eax]
test edx, edx
je 0x4a29f0
lea ecx, [esp + 0x90]
call fcn.00457010
mov ecx, dword [esp + 0x50]
inc edi
add ecx, 0x18
mov dword [esp + 0x50], ecx
cmp edi, dword [esi + 0x24]
jl 0x4a29d6
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x68], 0
je 0x4a2a6a
mov eax, dword [esp + 0x44]
test byte [eax + 0x50], 4
jne 0x4a2a6a
cmp dword [esp + 0x78], 0
jne 0x4a2a27
mov eax, dword [esp + 0x34]
test byte [eax + 0x30], 8
je 0x4a2a6a
mov dword [esp + 0xe0], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x4a2a6a
mov eax, dword [esp + 0xf4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.00442b90
mov word [esi], 0xbb
add esp, 4
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x78], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
je 0x4a2add
mov eax, dword [edx + 4]
mov dword [esp + 0x60], eax
cmp dword [edi + 0x70], ecx
jg 0x4a2aa6
push dword [esp + 0x4c]
mov edx, 0x85
mov ecx, edi
push dword [esp + 0x5c]
push eax
call fcn.00441fb0
mov edx, dword [esp + 0x34]
add esp, 0xc
jmp 0x4a2add
mov esi, dword [esp + 0x60]
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], esi
mov esi, dword [esp + 0x58]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x85
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x68], eax
cmp dword [ecx], eax
jle 0x4a2b9e
add ecx, 8
mov dword [esp + 0x58], ecx
nop word [eax + eax]
mov ecx, dword [esp + 0x84]
add ecx, eax
cmp dword [esp + 0x78], 0
mov dword [esp + 0x50], ecx
je 0x4a2b6c
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a2b37
mov edx, dword [esp + 0x50]
mov ecx, edi
push edx
push eax
push dword [esp + 0x54]
mov edx, 0x5e
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2b80
mov edx, 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], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x50]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a2b80
mov byte [edx], 1
mov edx, dword [esp + 0x58]
push ecx
mov ecx, esi
mov edx, dword [edx]
call fcn.00463e50
add esp, 4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
inc eax
add dword [esp + 0x58], 0x14
mov edx, dword [esp + 0x28]
mov dword [esp + 0x68], eax
cmp eax, dword [ecx]
jl 0x4a2b00
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4a2ba8
inc dword [eax]
mov edx, dword [edi + 0x6c]
mov eax, dword [ecx]
mov dword [esp + 0x60], eax
cmp dword [edi + 0x70], edx
jg 0x4a2bd7
push eax
mov eax, dword [esp + 0x4c]
mov edx, 0x5a
push dword [esp + 0x88]
inc eax
mov ecx, edi
push eax
call fcn.00441fb0
add esp, 0xc
mov edx, eax
jmp 0x4a2c16
mov esi, dword [esp + 0x48]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
inc esi
mov edi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x4a2c32
mov edx, dword [esp + 0x70]
push edx
mov edx, 0xfffffff8
call fcn.00442b90
add esp, 4
jmp 0x4a2c6a
test edx, edx
jns 0x4a2c3a
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov edx, dword [esp + 0x70]
je 0x4a2c5f
push 0xfffffffffffffff8
push edx
mov edx, eax
mov ecx, edi
call fcn.00442ca0
add esp, 8
jmp 0x4a2c6a
test edx, edx
je 0x4a2c6a
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf8
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x58], eax
lea edx, [eax + 1]
cmp dword [edi + 0x70], eax
jg 0x4a2c8e
push edx
push 0
push edx
mov edx, 0xe
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2cba
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
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 ecx, dword [esi + 8]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x60], ecx
mov edx, dword [ecx + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x68], eax
cmp dword [ecx + 0x70], edx
jg 0x4a2cf0
push eax
mov eax, dword [esp + 0x4c]
mov edx, 0x4f
inc eax
push eax
push dword [esp + 0x8c]
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2d2f
mov edi, dword [esp + 0x38]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x84]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
inc edx
mov dword [eax + ecx*4], 0x4f
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x68]
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 0x4a2d54
mov eax, dword [esp + 0x6c]
mov edx, 0xa
push 0
push dword [esp + 0x78]
inc eax
mov ecx, edi
push eax
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2d8c
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a2daf
push 0
push dword [esp + 0x60]
mov edx, 0x3b
mov ecx, edi
push dword [esp + 0x74]
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2de2
mov edx, dword [esp + 0x6c]
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], 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 0x4a2e05
push 0
push dword [esp + 0x24]
mov edx, 0xa
mov ecx, edi
push dword [esp + 0x50]
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2e38
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
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 0x4a2e4a
mov eax, 0x5732c0
jmp 0x4a2e57
mov eax, dword [esp + 0x58]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
push dword [esp + 0x18]
mov dword [eax + 8], edx
mov ecx, esi
push dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
call fcn.0049f4a0
mov ecx, dword [edi + 0x6c]
add esp, 8
cmp dword [edi + 0x70], ecx
jg 0x4a2e91
push 0
push dword [esp + 0x40]
mov edx, 0x47
mov ecx, edi
push 1
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2ec4
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], 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 + 0x78], 0
je 0x4a2f23
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x6c]
mov edx, dword [eax + 4]
cmp dword [edi + 0x70], ecx
jg 0x4a2ef2
push 0
push dword [esp + 0x30]
mov ecx, edi
push edx
mov edx, 0x25
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2f61
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 + 0x2c]
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 0x4a2f5d
mov ecx, dword [esp + 0x34]
call fcn.004c07d0
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
jne 0x4a2f61
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.00442b90
add esp, 4
mov word [esi], 0xbb
mov dword [esi + 0x10], 0
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4a2f77
mov ecx, dword [esp + 0x44]
mov edx, eax
call fcn.0045d940
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a2f9c
mov eax, dword [esp + 0x6c]
mov edx, 0xa
push 0
push dword [esp + 0x78]
inc eax
mov ecx, edi
push eax
call fcn.00441fb0
add esp, 0xc
jmp 0x4a2fd4
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
inc edx
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x74]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a2ff5
push 0
push dword [esp + 0x60]
mov edx, 9
mov ecx, edi
push 0
call fcn.00441fb0
add esp, 0xc
jmp 0x4a3028
mov edx, dword [esp + 0x5c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 9
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov dword [esp + 0x68], ecx
cmp dword [edi + 0x70], ecx
jg 0x4a3051
push 0
push dword [esp + 0x70]
mov edx, 0x47
mov ecx, edi
push 1
call fcn.00441fb0
mov edx, dword [esp + 0x78]
add esp, 0xc
jmp 0x4a3084
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x47
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a30a5
push 0
lea eax, [edx + 1]
mov ecx, edi
push 0
push eax
mov edx, 0x43
call fcn.00441fb0
add esp, 0xc
jmp 0x4a30dd
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x1c]
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 + 0x74]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a30fb
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a3104
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x6c]
lea ecx, [eax + 2]
lea edx, [eax + 1]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x24], edx
cmp dword [edi + 0x70], eax
jg 0x4a3132
push 0
push ecx
push dword [esp + 0x44]
mov edx, 0x3b
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a316a
mov esi, dword [esp + 0x3c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov dword [edi + 0x6c], edx
mov dword [esp + 0x24], edx
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x60]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0x3b
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 0x4a318d
mov eax, dword [esp + 0x6c]
mov edx, 0x43
push 0
inc eax
mov ecx, edi
push 0
push eax
call fcn.00441fb0
add esp, 0xc
jmp 0x4a31c5
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x1c]
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 edx, dword [esp + 0x28]
mov ecx, esi
call fcn.0049ef80
push 0x10
push dword [esp + 0x28]
push dword [esp + 0x6c]
push esi
call fcn.00464970
push dword [esp + 0x78]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0xc4]
push dword [esp + 0x38]
mov ecx, esi
push dword [esp + 0x94]
push eax
lea eax, [esp + 0x100]
push eax
push 0xffffffffffffffff
call fcn.004954f0
mov ecx, dword [edi + 0x6c]
add esp, 0x28
cmp dword [edi + 0x70], ecx
jg 0x4a3232
mov eax, dword [esp + 0x6c]
mov edx, 0x43
push 0
inc eax
mov ecx, edi
push 0
push eax
call fcn.00441fb0
add esp, 0xc
jmp 0x4a326a
mov edx, dword [esp + 0x6c]
lea eax, [ecx + 1]
mov esi, dword [esp + 0x1c]
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 + 0x20]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a3288
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a3291
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.0049ec70
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a32bd
push 0
push dword [esp + 0x40]
mov edx, 0x47
mov ecx, edi
push 0
call fcn.00441fb0
add esp, 0xc
jmp 0x4a32f0
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 0x4a3311
push 0
push 0
push dword [esp + 0x50]
mov edx, 0x43
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a3344
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 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 0x4a3a66
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4a3a66
mov eax, dword [esp + 0x28]
mov edx, ecx
mov ecx, esi
mov eax, dword [eax + 0x20]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.00495420
add esp, 8
jmp 0x4a3a66
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0x24], 0
jne 0x4a3773
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x18], eax
cmp dword [eax], 1
jne 0x4a3773
mov eax, dword [ecx + 0x20]
cmp dword [eax], 1
jne 0x4a3773
cmp dword [eax + 0x1c], 0
jne 0x4a3773
cmp dword [edx + 0x24], 1
jne 0x4a3773
cmp dword [ecx + 0x2c], 0
jne 0x4a3773
mov ecx, dword [eax + 0x18]
cmp byte [ecx + 0x2b], 0
jne 0x4a3773
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
cmp byte [eax], 0xa8
jne 0x4a3773
cmp dword [eax + 0x28], edx
jne 0x4a3773
mov eax, dword [edx + 0x20]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x4a3773
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x38]
test dword [eax + 4], 0x1000004
jne 0x4a3773
test ecx, ecx
je 0x4a3773
mov esi, dword [esp + 0x14]
mov edx, dword [ecx + 0x3c]
mov ecx, 0xffff8000
mov dword [esp + 0x4c], ecx
mov edi, dword [esi + 0x20]
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x3c], eax
test edx, edx
je 0x4a348c
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
add eax, 0xc
mov esi, dword [ecx + 0x20]
mov ecx, 0
mov edi, dword [esi + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edi
cmp dword [eax], edx
je 0x4a348c
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x20]
mov ecx, dword [esp + 0x4c]
mov edi, dword [esi + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x3c], edi
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x4a3480
mov dword [esp + 0x4c], ecx
mov eax, dword [esi + 0x28]
xor edx, edx
mov dword [esp + 0x70], eax
mov edi, esi
inc eax
mov dword [esp + 0x34], edx
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x80]
test eax, eax
cmovne edi, eax
mov eax, edi
mov dword [esp + 0x18], edi
mov edi, dword [eax + 0x5c]
mov eax, 1
shl eax, cl
test edi, eax
jne 0x4a34e7
mov eax, dword [esp + 0x18]
bts edi, ecx
mov dword [eax + 0x5c], edi
cmp ecx, 1
jne 0x4a34ec
mov ecx, eax
call fcn.00477670
jmp 0x4a3515
cmp ecx, 1
je 0x4a3517
mov eax, dword [esi]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
cmp byte [eax + 9], dl
je 0x4a3517
mov eax, dword [esp + 0x3c]
mov ecx, esi
mov edx, dword [esp + 0x4c]
push dword [eax]
push 0
push dword [eax + 0x14]
call fcn.0046dd60
add esp, 0xc
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x38]
test byte [ecx + 0x1c], 0x80
je 0x4a3544
mov edx, dword [ecx + 8]
mov dword [esp + 0x34], edx
test edx, edx
je 0x4a3544
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
je 0x4a3540
mov edx, dword [edx + 0x14]
test edx, edx
jne 0x4a3530
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
test byte [eax + 0x30], 1
jne 0x4a3589
mov eax, dword [ecx + 8]
test eax, eax
je 0x4a3589
test byte [eax + 0x38], 4
jne 0x4a357a
movzx edi, word [eax + 0x30]
cmp di, word [ecx + 0x28]
jge 0x4a357a
cmp dword [eax + 0x24], 0
jne 0x4a357a
test edx, edx
je 0x4a3578
cmp di, word [edx + 0x30]
jge 0x4a357a
mov edx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4a3558
mov edi, dword [esp + 0x38]
mov dword [esp + 0x34], edx
test edx, edx
je 0x4a359f
mov eax, dword [edx + 0x2c]
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.00477f50
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a35c7
mov edx, dword [esp + 0x10]
mov ecx, edi
push 1
push dword [esp + 0x50]
push edx
push dword [esp + 0x7c]
mov edx, 0x70
call fcn.00441ff0
add esp, 0x10
jmp 0x4a35fa
mov edx, dword [esp + 0x70]
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 + 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0xfd70
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 1
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4a3646
mov ecx, dword [edi]
cmp byte [ecx + 0x57], 0
je 0x4a361a
push edx
mov edx, 0xfffffff8
call fcn.00442b90
add esp, 4
jmp 0x4a3646
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
cmp byte [eax + ecx*4 - 0x13], 0
lea eax, [eax + ecx*4]
je 0x4a363f
push 0xfffffffffffffff8
push edx
lea edx, [eax - 0x14]
mov ecx, edi
call fcn.00442ca0
add esp, 8
jmp 0x4a3646
mov dword [eax - 4], edx
mov byte [eax - 0x13], 0xf8
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x2c]
inc eax
mov dword [ecx + 0xc], eax
mov eax, dword [ecx + 0x24]
add eax, dword [ecx + 0x18]
add dword [esi + 0x2c], eax
mov edx, dword [ecx + 0x18]
add edx, dword [ecx + 0xc]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a3680
push 0
push edx
push dword [esp + 0x78]
mov edx, 0x62
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a36b3
mov esi, dword [esp + 0x70]
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], esi
mov esi, dword [esp + 0x1c]
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 [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a36d4
push 0
push 0
push dword [esp + 0x78]
mov edx, 0x7a
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a3707
mov edx, dword [esp + 0x70]
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], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [esi + 0xdb], 2
jne 0x4a3a2a
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x3c]
test ecx, ecx
je 0x4a373b
test byte [edx + 0x1c], 0x80
je 0x4a372f
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x4a373b
mov eax, dword [ecx]
mov dword [esp + 0x18], 1
jmp 0x4a3748
mov dword [esp + 0x18], 0
mov eax, 0x5590e3
cmp dword [esp + 0x18], 0
mov ecx, 0x5590e3
push eax
mov eax, str._USING_COVERING_INDEX
cmove eax, ecx
push eax
push dword [edx]
push str.SCAN__s_s_s
push 0
push esi
call fcn.004425b0
add esp, 0x18
jmp 0x4a3a2a
cmp dword [edx + 0x1c], 0
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x34], ecx
je 0x4a3859
xor eax, eax
test ecx, ecx
jle 0x4a37ec
mov ecx, dword [edx + 0x20]
xor esi, esi
mov edx, dword [esp + 0x34]
nop dword [eax + eax]
mov eax, dword [ecx]
test dword [eax + 4], 0x1000000
jne 0x4a37c8
mov eax, dword [ecx + 4]
mov dword [esp + 0x34], edx
test byte [eax + 4], 0x20
jne 0x4a37d4
inc esi
mov dword [esp + 0x34], edx
add ecx, 0x18
cmp esi, edx
jl 0x4a37b0
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp eax, ecx
jne 0x4a387d
inc dword [esi + 0x2c]
mov ecx, dword [edi + 0x6c]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x20], eax
cmp dword [edi + 0x70], ecx
jg 0x4a3820
push 0
push eax
push 0
mov edx, 0x47
mov ecx, edi
call fcn.00441fb0
mov edx, dword [esp + 0x34]
add esp, 0xc
jmp 0x4a387d
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x20]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x38]
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
jmp 0x4a387d
cmp ecx, 1
jne 0x4a387d
mov eax, dword [edx + 0x20]
cmp dword [eax + 8], 0
jl 0x4a387d
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x24], eax
neg eax
sbb eax, eax
and eax, 0x500
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x2c]
mov ecx, esi
inc eax
mov dword [edx + 0xc], eax
mov eax, dword [edx + 0x24]
add eax, dword [edx + 0x18]
add dword [esi + 0x2c], eax
call fcn.0049ec70
movzx eax, byte [esp + 0x43]
mov ecx, esi
or ax, word [esp + 0x10]
mov edx, dword [esp + 0x2c]
push 0
movzx eax, ax
push eax
push dword [esp + 0x1c]
push dword [esp + 0x30]
push dword [esp + 0x98]
push dword [esp + 0x8c]
call fcn.004bf730
add esp, 0x18
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a3b0c
movzx eax, byte [eax + 0x2f]
mov ecx, esi
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x2c]
mov dword [esp + 0x68], eax
call fcn.0049f4a0
mov edx, dword [esp + 0x68]
add esp, 8
test edx, edx
je 0x4a3912
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x4a3912
push dword [eax + 0xc]
mov ecx, esi
push dword [eax + 8]
call fcn.00495420
add esp, 8
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4a396b
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a3938
push 0
push edx
push 1
mov edx, 0x47
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a396b
mov esi, 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], 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 + 0x43], 0
mov eax, dword [esp + 0x3c]
je 0x4a3a18
test byte [eax + 0x30], 4
je 0x4a3a18
cmp byte [eax + 0x2d], 0
je 0x4a3a18
movzx edx, byte [eax + 0x2c]
sub edx, 1
js 0x4a39b8
lea ecx, [edx + edx*2]
shl ecx, 5
add ecx, eax
nop
mov eax, dword [ecx + 0x348]
test byte [eax + 0x2c], 4
jne 0x4a39bd
sub ecx, 0x60
sub edx, 1
jns 0x4a39a0
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x20]
jmp 0x4a39c3
mov edx, dword [ecx + 0x308]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4a39e1
push 0
push edx
push 0
mov edx, 9
mov ecx, edi
call fcn.00441fb0
add esp, 0xc
jmp 0x4a3a14
mov esi, 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 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4], 9
mov eax, dword [esp + 0x3c]
mov ecx, eax
call fcn.004c07d0
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.0049ef80
push 0x10
push dword [esp + 0x60]
mov dword [esp + 0xe8], 0
push dword [esp + 0x6c]
push esi
call fcn.00464970
mov eax, dword [esp + 0x6c]
mov ecx, esi
mov edx, dword [esp + 0x24]
push eax
push eax
push dword [esp + 0x94]
push 0
push 0
push 0xffffffffffffffff
call fcn.004954f0
add esp, 0x28
mov edx, dword [esp + 0x5c]
mov ecx, dword [edi + 0xc]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a3a84
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a3a8d
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0xb1], 3
jne 0x4a3aac
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push 0
push esi
call fcn.004425b0
add esp, 0x10
cmp dword [esp + 0xe0], 0
je 0x4a3ad6
mov eax, dword [esp + 0x30]
mov ecx, esi
push dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
push dword [eax]
lea eax, [esp + 0xe8]
push eax
call fcn.00496690
add esp, 0xc
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x8c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4a3af7
push edx
mov edx, edi
call fcn.00442800
add esp, 4
jmp 0x4a3b00
mov ecx, dword [ecx + 0x40]
mov eax, dword [edi + 0x6c]
mov dword [ecx + edx*4], eax
xor eax, eax
cmp dword [esi + 0x24], eax
setg al
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4a0479
mov edx, ecx
mov ecx, eax
call fcn.0045d940
jmp 0x4a0479
push dword [esp + 0x7c]
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.00498d30
mov edi, eax
add esp, 4
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x38], 0
jne 0x4a3bb4
mov ecx, dword [esi + 0xe8]
test ecx, ecx
jne 0x4a3b73
xor eax, eax
mov dword [esi + 0xe8], eax
mov eax, edi
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 8]
mov eax, dword [edx]
cmp byte [eax + 0x57], 0
je 0x4a3ba2
mov eax, 0x5732c0
mov eax, dword [eax + 8]
mov dword [esi + 0xe8], eax
mov eax, edi
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe8], eax
mov eax, edi
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 8]
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x4a3bfb
mov eax, 0x5732c0
mov eax, dword [eax + 8]
mov dword [esi + 0xe8], eax
mov eax, dword [esp + 0x60]
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 0x68]
lea eax, [ecx + edx*4]
mov eax, dword [eax + 8]
mov dword [esi + 0xe8], eax
mov eax, dword [esp + 0x60]
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x11c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.0054507b
mov esp, ebp
pop ebp
ret