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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8c
mov eax, dword [0x529748]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ecx + 8]
push esi
push edi
mov dword [esp + 0x68], eax
mov edi, edx
mov eax, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x38], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ebx
call fcn.00436e50
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.00436e50
mov esi, dword [edi + 0x30]
movzx ecx, byte [edi + 4]
mov dword [esp + 0x5c], eax
cmp ecx, 0x74
mov eax, dword [edi + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], eax
je 0x46c138
cmp byte [ecx + 0x40], 0
mov edi, 1
jne 0x46c134
lea eax, [eax + eax*2]
shl eax, 3
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
cmp edi, dword [eax]
mov eax, dword [esp + 0x3c]
jg 0x46c1a6
mov edx, dword [esi + 4]
xor ecx, ecx
test eax, eax
jle 0x46c09a
add edx, 0x14
mov ebx, eax
movzx eax, word [edx]
cmp eax, edi
je 0x46c092
inc ecx
add edx, 0x18
cmp ecx, ebx
jl 0x46c083
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jne 0x46c123
mov ecx, dword [esp + 0x20]
mov edx, 0x31
call fcn.00419f60
mov esi, eax
test esi, esi
je 0x46c18c
push 0x31
push 0
push esi
call fcn.004c1b90
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x28]
or eax, 0xffffffff
mov byte [esi], 0x84
mov word [esi + 0x22], ax
mov byte [esi + 0x30], 0
or dword [esi + 4], 0x400
push esi
mov dword [esi + 0x18], 1
mov dword [esi + 8], edi
call fcn.004495e0
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
je 0x46c11f
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
mov word [eax + ecx + 0x14], di
mov eax, dword [esp + 0x3c]
inc eax
add ecx, 0x18
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
jmp 0x46c123
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
inc edi
cmp byte [edx + 0x40], 0
je 0x46c063
mov ecx, edx
mov edi, dword [esp + 0x14]
lea edx, [eax*4]
call fcn.00419f60
mov dword [esp + 0x58], eax
test eax, eax
je 0x46c1ac
mov edi, dword [esp + 0x3c]
xor ecx, ecx
mov edx, dword [esi + 4]
test edi, edi
jle 0x46c173
add edx, 0x14
mov ebx, eax
mov edi, edi
movzx eax, word [edx]
lea edx, [edx + 0x18]
dec eax
mov dword [ebx + ecx*4], eax
inc ecx
cmp ecx, edi
jl 0x46c160
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov edx, edi
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.0046aaa0
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x46c1b4
mov eax, 7
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.004bd963
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
jmp 0x46c134
mov dword [esp + 0x50], 0
mov dword [edi + 0x30], esi
mov edx, esi
mov esi, dword [esp + 0x28]
push 0
mov ecx, dword [esi]
call fcn.00448fb0
mov ecx, dword [esp + 0x48]
add esp, 4
cmp dword [esp + 0x48], 0x74
mov dword [ecx + 0x30], eax
jne 0x46c1e4
mov dword [esp + 0x34], 0
jmp 0x46c3eb
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [esi + 0x48]
mov dword [esp + 0x30], ecx
lea edx, [eax + 1]
inc eax
add eax, ecx
mov dword [esp + 0x34], edx
mov dword [esi + 0x48], eax
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x54], eax
jg 0x46c274
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c216
add eax, eax
jmp 0x46c21b
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46c2a4
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c250
cmp esi, dword [eax + 0x110]
jae 0x46c250
movzx ecx, word [eax + 0xf0]
jmp 0x46c25c
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x34]
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
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 edi, dword [esp + 0x30]
lea esi, [edi*4 + 0x1d]
add esi, edi
lea eax, [esi - 1]
cmp eax, 0x7ffffefe
ja 0x46c35f
cmp dword [0x52b518], 0
je 0x46c30a
mov eax, dword [0x52ff30]
test eax, eax
je 0x46c2db
push eax
call dword [0x52b56c]
add esp, 4
lea edx, [esp + 0x10]
mov ecx, esi
call fcn.00419870
mov eax, dword [0x52ff30]
test eax, eax
je 0x46c300
push eax
call dword [0x52b574]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
jmp 0x46c317
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
jmp 0x46c31a
push esi
call dword [0x52b53c]
mov ecx, eax
mov dword [esp + 0x20], eax
add esp, 4
test ecx, ecx
je 0x46c365
push esi
push 0
push ecx
call fcn.004c1b90
mov ecx, dword [esp + 0x28]
lea eax, [edi + 6]
mov edx, dword [esp + 0x2c]
add esp, 0xc
lea eax, [ecx + eax*4]
mov word [ecx + 6], di
mov dword [ecx + 0x10], eax
mov eax, 1
mov word [ecx + 8], ax
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [ecx + 4], al
mov dword [ecx + 0xc], edx
mov dword [ecx], 1
jmp 0x46c36d
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x40], 1
test ecx, ecx
je 0x46c3e3
xor esi, esi
test edi, edi
jle 0x46c3e3
mov ebx, dword [esp + 0x1c]
xor edi, edi
add ecx, 0x14
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x34]
test edx, edx
je 0x46c3a6
mov ecx, dword [esp + 0x28]
push esi
call fcn.0046aa50
mov ecx, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x46c3c5
jmp 0x46c3a8
xor eax, eax
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
cmp esi, dword [edx]
jge 0x46c3c5
mov edx, dword [edx + 4]
mov ecx, dword [esp + 0x28]
mov edx, dword [edx + edi]
call fcn.00447e90
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
add edi, 0x18
mov eax, dword [ebx + 0x10]
add ecx, 4
mov dword [esp + 0x18], ecx
mov byte [esi + eax], 0
inc esi
cmp esi, dword [esp + 0x30]
jl 0x46c384
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov edx, edi
mov dword [edi + 0x34], 0
mov ecx, esi
push str.ORDER
mov dword [eax + 0x38], 0
push dword [edi + 0x30]
call fcn.004473f0
mov eax, dword [esp + 0x4c]
add esp, 8
cmp dword [eax + 0x34], 0
jne 0x46c42f
push str.ORDER
push dword [eax + 0x30]
mov edx, eax
mov ecx, esi
call fcn.004473f0
add esp, 8
push dword [esp + 0x4c]
mov edx, edi
mov ecx, esi
call fcn.0046a8a0
add esp, 4
cmp dword [edi + 8], 0
je 0x46c638
cmp dword [esp + 0x48], 0x74
jne 0x46c638
mov eax, dword [esi + 0x48]
inc eax
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x24], eax
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x46c474
lea ecx, [eax + 1]
mov dword [esp + 0x10], ecx
jmp 0x46c47b
mov eax, dword [edi + 8]
mov dword [esp + 0x10], eax
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x30], eax
cmp dword [edi + 0x54], eax
jg 0x46c4ef
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c495
add eax, eax
jmp 0x46c49a
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46c523
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c4cf
cmp esi, dword [eax + 0x110]
jae 0x46c4cf
movzx ecx, word [eax + 0xf0]
jmp 0x46c4db
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x30]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x21
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x54], eax
jg 0x46c597
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c53d
add eax, eax
jmp 0x46c542
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46c5cb
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c577
cmp esi, dword [eax + 0x110]
jae 0x46c577
movzx ecx, word [eax + 0xf0]
jmp 0x46c583
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x21
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x3c]
test esi, esi
je 0x46c670
test dword [esi + 4], 0x4000
mov edi, dword [esp + 0x20]
jne 0x46c65a
mov edx, dword [esi + 0xc]
mov ecx, edi
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, edi
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46c60e
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00419d00
test dword [esi + 4], 0x800
je 0x46c64a
mov edi, dword [esi + 0x14]
test edi, edi
je 0x46c656
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.004677f0
mov edx, edi
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.00419d00
jmp 0x46c65a
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
jmp 0x46c5cf
mov edx, dword [esi + 0x14]
mov ecx, edi
call fcn.004497a0
jmp 0x46c65a
mov edi, dword [esp + 0x20]
test dword [esi + 4], 0x8000
jne 0x46c66c
mov edx, esi
mov ecx, edi
call fcn.00419d00
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 0x40]
mov dword [edi + 0x3c], 0
test esi, esi
je 0x46c706
test dword [esi + 4], 0x4000
mov edi, dword [esp + 0x20]
jne 0x46c6f0
mov edx, dword [esi + 0xc]
mov ecx, edi
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, edi
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46c6b6
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00419d00
test dword [esi + 4], 0x800
je 0x46c6e0
mov edi, dword [esi + 0x14]
test edi, edi
je 0x46c6ec
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.004677f0
mov edx, edi
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.00419d00
jmp 0x46c6f0
mov edx, dword [esi + 0x14]
mov ecx, edi
call fcn.004497a0
jmp 0x46c6f0
mov edi, dword [esp + 0x20]
test dword [esi + 4], 0x8000
jne 0x46c702
mov edx, esi
mov ecx, edi
call fcn.00419d00
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov dword [edi + 0x40], 0
mov word [esp + 0x80], 0xd
mov dword [esp + 0x88], 0
inc dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], 0
mov word [esp + 0x6c], 0xd
lea edx, [ecx + 1]
mov dword [esp + 0x74], 0
lea eax, [edx + 2]
mov dword [esp + 0x70], edx
mov dword [esi + 0x48], eax
mov dword [esp + 0x78], 0
mov edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
cmp dword [edi + 0x54], esi
jg 0x46c7e6
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c788
add eax, eax
jmp 0x46c78d
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46c85e
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c7c6
cmp esi, dword [eax + 0x110]
jae 0x46c7c6
movzx ecx, word [eax + 0xf0]
jmp 0x46c7d2
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x1d4]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x80]
push ecx
mov ecx, eax
call fcn.0046fee0
mov edi, dword [ebx + 0x18]
add esp, 4
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x54], eax
jg 0x46c8c2
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c868
add eax, eax
jmp 0x46c86d
mov dword [esp + 0x2c], 1
jmp 0x46c819
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46c8f6
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c8a2
cmp esi, dword [eax + 0x110]
jae 0x46c8a2
movzx ecx, word [eax + 0xf0]
jmp 0x46c8ae
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x54]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
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 [ebx + 0x20]
mov eax, dword [esp + 0x2c]
cmp edx, eax
jbe 0x46c90b
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x58], ecx
mov edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0x10], esi
cmp dword [edi + 0x54], esi
jg 0x46c98d
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46c92f
add eax, eax
jmp 0x46c934
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46ca1d
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46c96d
cmp esi, dword [eax + 0x110]
jae 0x46c96d
movzx ecx, word [eax + 0xf0]
jmp 0x46c979
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x10]
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
lea edx, [esi + 1]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
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 + 0x14]
mov edx, ecx
mov eax, dword [esp + 0x24]
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0xc], 0
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0x1d4]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x6c]
push eax
call fcn.0046fee0
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x2c], eax
cmp dword [edi + 0x54], eax
jg 0x46ca81
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46ca27
add eax, eax
jmp 0x46ca2c
mov dword [esp + 0x10], 1
jmp 0x46c9c0
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46cab5
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46ca61
cmp esi, dword [eax + 0x110]
jae 0x46ca61
movzx ecx, word [eax + 0xf0]
jmp 0x46ca6d
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x2c]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x40]
mov word [eax + ecx*4], 0x15
mov byte [eax + ecx*4 + 3], 0
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 dword [esp + 0x4c]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x38]
inc eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
push esi
push edi
push eax
push dword [esp + 0x78]
lea eax, [esp + 0x94]
push eax
call fcn.0046bb00
mov dword [esp + 0x30], eax
add esp, 0x18
mov eax, dword [esp + 0x48]
cmp eax, 0x74
je 0x46caf7
cmp eax, 0x73
jne 0x46cb1e
push dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x2c]
push esi
push edi
push dword [esp + 0x3c]
push dword [esp + 0x78]
push eax
call fcn.0046bb00
add esp, 0x18
mov dword [esp + 0x38], eax
test esi, esi
je 0x46cb2f
dec dword [esi]
jne 0x46cb2f
push esi
call fcn.00419c60
add esp, 4
mov eax, dword [esp + 0x48]
cmp eax, 0x75
je 0x46cd73
cmp eax, 0x76
je 0x46cd73
mov edi, dword [ebx + 0x18]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x54], edx
jg 0x46cbbd
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cb5f
add eax, eax
jmp 0x46cb64
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46cc0b
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46cb9d
cmp esi, dword [eax + 0x110]
jae 0x46cb9d
movzx ecx, word [eax + 0xf0]
jmp 0x46cba9
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x1c]
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x2c], edx
cmp dword [edi + 0x54], edx
jg 0x46cc73
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cc15
add eax, eax
jmp 0x46cc1a
mov dword [esp + 0x1c], 1
jmp 0x46cbf1
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46ccc1
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46cc53
cmp esi, dword [eax + 0x110]
jae 0x46cc53
movzx ecx, word [eax + 0xf0]
jmp 0x46cc5f
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x2c]
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [edi + 0x54], eax
jg 0x46cd25
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cccb
add eax, eax
jmp 0x46ccd0
mov dword [esp + 0x2c], 1
jmp 0x46cca7
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46cd59
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46cd05
cmp esi, dword [eax + 0x110]
jae 0x46cd05
movzx ecx, word [eax + 0xf0]
jmp 0x46cd11
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x24]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 [esp + 0x44]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx + 0x18]
add dword [edx + 0x18], eax
mov eax, dword [ecx + 0x1c]
adc dword [edx + 0x1c], eax
mov eax, dword [esp + 0x1c]
jmp 0x46cd89
mov ecx, dword [esp + 0x4c]
mov eax, ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x48], 0x76
jne 0x46cdb9
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
cmp dword [edx + 0x1c], ecx
jb 0x46cfc0
ja 0x46cdae
cmp dword [edx + 0x18], eax
jbe 0x46cfc0
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ecx
jmp 0x46cfc0
mov edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0x34], esi
cmp dword [edi + 0x54], esi
jg 0x46ce31
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cdd3
add eax, eax
jmp 0x46cdd8
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46ce80
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46ce11
cmp esi, dword [eax + 0x110]
jae 0x46ce11
movzx ecx, word [eax + 0xf0]
jmp 0x46ce1d
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x34]
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x40]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [edi + 0x54], eax
jg 0x46cee4
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46ce8a
add eax, eax
jmp 0x46ce8f
mov dword [esp + 0x34], 1
jmp 0x46ce66
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46cf18
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46cec4
cmp esi, dword [eax + 0x110]
jae 0x46cec4
movzx ecx, word [eax + 0xf0]
jmp 0x46ced0
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x24]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [edi + 0x54], eax
jg 0x46cf8c
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cf32
add eax, eax
jmp 0x46cf37
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46cfc0
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46cf6c
cmp esi, dword [eax + 0x110]
jae 0x46cf6c
movzx ecx, word [eax + 0xf0]
jmp 0x46cf78
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x24]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 edi, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0x24], esi
cmp dword [edi + 0x54], esi
jg 0x46d038
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46cfda
add eax, eax
jmp 0x46cfdf
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d087
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d018
cmp esi, dword [eax + 0x110]
jae 0x46d018
movzx ecx, word [eax + 0xf0]
jmp 0x46d024
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x24]
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x40]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x54], eax
jg 0x46d0eb
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d091
add eax, eax
jmp 0x46d096
mov dword [esp + 0x24], 1
jmp 0x46d06d
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d11f
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d0cb
cmp esi, dword [eax + 0x110]
jae 0x46d0cb
movzx ecx, word [eax + 0xf0]
jmp 0x46d0d7
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x18]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x54], eax
jg 0x46d193
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d139
add eax, eax
jmp 0x46d13e
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d1c7
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d173
cmp esi, dword [eax + 0x110]
jae 0x46d173
movzx ecx, word [eax + 0xf0]
jmp 0x46d17f
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x18]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 eax, dword [esp + 0x48]
cmp eax, 0x74
jne 0x46d1dd
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
jmp 0x46d352
cmp eax, 0x76
jne 0x46d1f4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x24], eax
jmp 0x46d352
mov edi, dword [ebx + 0x18]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x18], edx
cmp dword [edi + 0x54], edx
jg 0x46d26c
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d20e
add eax, eax
jmp 0x46d213
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d2ba
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d24c
cmp esi, dword [eax + 0x110]
jae 0x46d24c
movzx ecx, word [eax + 0xf0]
jmp 0x46d258
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x18]
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
cmp dword [edi + 0x54], eax
jg 0x46d31e
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d2c4
add eax, eax
jmp 0x46d2c9
mov dword [esp + 0x18], 1
jmp 0x46d2a0
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d352
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d2fe
cmp esi, dword [eax + 0x110]
jae 0x46d2fe
movzx ecx, word [eax + 0xf0]
jmp 0x46d30a
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x1c]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 [esp + 0x48]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
cmp ecx, 0x74
je 0x46d36b
cmp ecx, 0x73
jne 0x46d40c
mov edi, dword [ebx + 0x18]
cmp dword [edi + 0x54], eax
jg 0x46d3d8
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d37e
add eax, eax
jmp 0x46d383
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d40c
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d3b8
cmp esi, dword [eax + 0x110]
jae 0x46d3b8
movzx ecx, word [eax + 0xf0]
jmp 0x46d3c4
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x1c]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x38]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x38], eax
cmp dword [edi + 0x54], eax
jg 0x46d480
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d426
add eax, eax
jmp 0x46d42b
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d4b4
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d460
cmp esi, dword [eax + 0x110]
jae 0x46d460
movzx ecx, word [eax + 0xf0]
jmp 0x46d46c
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x38]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x38], eax
cmp dword [edi + 0x54], eax
jg 0x46d528
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d4ce
add eax, eax
jmp 0x46d4d3
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d55c
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d508
cmp esi, dword [eax + 0x110]
jae 0x46d508
movzx ecx, word [eax + 0xf0]
jmp 0x46d514
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x38]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
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 [ebx + 0x20]
mov eax, dword [esp + 0x10]
cmp edx, eax
jbe 0x46d571
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 8], edx
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x54], eax
jg 0x46d5ef
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d595
add eax, eax
jmp 0x46d59a
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d623
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d5cf
cmp esi, dword [eax + 0x110]
jae 0x46d5cf
movzx ecx, word [eax + 0xf0]
jmp 0x46d5db
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x54]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
cmp dword [edi + 0x54], eax
jg 0x46d697
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d63d
add eax, eax
jmp 0x46d642
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d6cb
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d677
cmp esi, dword [eax + 0x110]
jae 0x46d677
movzx ecx, word [eax + 0xf0]
jmp 0x46d683
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x10]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x34]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 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 [ebx + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x5c]
js 0x46d6e4
mov edx, dword [esi + 0x70]
test edx, edx
je 0x46d6e4
mov eax, dword [ebx + 0x20]
mov dword [edx + ecx*4], eax
mov eax, dword [ebx + 0x20]
dec eax
mov dword [esi + 0x58], eax
mov edi, dword [ebx + 0x18]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x10], edx
cmp dword [edi + 0x54], edx
jg 0x46d763
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d705
add eax, eax
jmp 0x46d70a
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d7d4
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d743
cmp esi, dword [eax + 0x110]
jae 0x46d743
movzx ecx, word [eax + 0xf0]
jmp 0x46d74f
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x10]
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x20]
mov word [eax + ecx*4], 0x28
mov byte [eax + ecx*4 + 3], 0
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
push 0xfffffffffffffff1
push dword [esp + 0x5c]
mov ecx, ebx
call fcn.00437240
mov edi, dword [ebx + 0x18]
add esp, 8
mov eax, dword [esp + 0x74]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
mov dword [esp + 0x58], edx
cmp dword [edi + 0x54], edx
jg 0x46d839
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d7db
add eax, eax
jmp 0x46d7e0
mov edx, 1
jmp 0x46d797
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d8a9
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d819
cmp esi, dword [eax + 0x110]
jae 0x46d819
movzx ecx, word [eax + 0xf0]
jmp 0x46d825
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
mov dword [edi + 0x54], edx
mov edx, dword [esp + 0x58]
mov dword [ebx + 4], esi
mov eax, dword [ebx + 4]
lea ecx, [edx + edx*4]
inc dword [ebx + 0x20]
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x38]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x29
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
push 0xfffffffffffffffa
push dword [esp + 0x54]
mov ecx, ebx
call fcn.00437240
mov ecx, dword [ebx + 4]
add esp, 8
test ecx, ecx
je 0x46d88f
mov eax, dword [ebx + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 1
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x50], eax
cmp dword [edi + 0x54], eax
jg 0x46d90a
mov eax, dword [edi + 0x54]
test eax, eax
je 0x46d8b0
add eax, eax
jmp 0x46d8b5
mov edx, 1
jmp 0x46d86d
mov eax, 0x33
mov edx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [edi]
shl eax, 2
push eax
call fcn.00419fe0
mov esi, eax
add esp, 4
test esi, esi
je 0x46d93e
mov eax, dword [edi]
cmp esi, dword [eax + 0x10c]
jb 0x46d8ea
cmp esi, dword [eax + 0x110]
jae 0x46d8ea
movzx ecx, word [eax + 0xf0]
jmp 0x46d8f6
push esi
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x50]
shr edx, 4
mov dword [edi + 0x54], edx
mov dword [ebx + 4], esi
inc dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x18]
or esi, 0xffffffff
sub esi, dword [esp + 0x4c]
js 0x46d957
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x46d957
mov eax, dword [ebx + 0x20]
mov dword [ecx + esi*4], eax
mov eax, dword [ebx + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x68]
cmp byte [eax], 9
jne 0x46d98d
mov eax, dword [esp + 0x44]
mov ecx, eax
mov eax, dword [eax + 0x34]
test eax, eax
je 0x46d97d
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x46d974
push dword [ecx]
mov ecx, dword [esp + 0x2c]
xor edx, edx
call fcn.0046a000
add esp, 4
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x34]
test edi, edi
je 0x46db74
mov ebx, dword [esp + 0x20]
mov ecx, ebx
mov edx, dword [edi]
call fcn.004497a0
mov edx, dword [edi + 0x20]
mov ecx, ebx
call fcn.004560d0
mov esi, dword [edi + 0x24]
test esi, esi
je 0x46da16
test dword [esi + 4], 0x4000
jne 0x46da04
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, ebx
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46d9ea
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.00419d00
test dword [esi + 4], 0x800
mov ecx, ebx
mov edx, dword [esi + 0x14]
je 0x46d9ff
call fcn.00467a30
jmp 0x46da04
call fcn.004497a0
test dword [esi + 4], 0x8000
jne 0x46da16
mov edx, esi
mov ecx, ebx
call fcn.00419d00
mov edx, dword [edi + 0x28]
mov ecx, ebx
call fcn.004497a0
mov esi, dword [edi + 0x2c]
test esi, esi
je 0x46da83
test dword [esi + 4], 0x4000
jne 0x46da71
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, ebx
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46da57
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.00419d00
test dword [esi + 4], 0x800
mov ecx, ebx
mov edx, dword [esi + 0x14]
je 0x46da6c
call fcn.00467a30
jmp 0x46da71
call fcn.004497a0
test dword [esi + 4], 0x8000
jne 0x46da83
mov edx, esi
mov ecx, ebx
call fcn.00419d00
mov edx, dword [edi + 0x30]
mov ecx, ebx
call fcn.004497a0
mov edx, dword [edi + 0x34]
mov ecx, ebx
call fcn.00467a30
mov esi, dword [edi + 0x3c]
test esi, esi
je 0x46dafa
test dword [esi + 4], 0x4000
jne 0x46dae8
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, ebx
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46dace
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.00419d00
test dword [esi + 4], 0x800
mov ecx, ebx
mov edx, dword [esi + 0x14]
je 0x46dae3
call fcn.00467a30
jmp 0x46dae8
call fcn.004497a0
test dword [esi + 4], 0x8000
jne 0x46dafa
mov edx, esi
mov ecx, ebx
call fcn.00419d00
mov esi, dword [edi + 0x40]
test esi, esi
je 0x46db5d
test dword [esi + 4], 0x4000
jne 0x46db4b
mov edx, dword [esi + 0xc]
mov ecx, ebx
call fcn.00448ac0
mov edx, dword [esi + 0x10]
mov ecx, ebx
call fcn.00448ac0
test dword [esi + 4], 0x10000
je 0x46db31
mov edx, dword [esi + 8]
mov ecx, ebx
call fcn.00419d00
test dword [esi + 4], 0x800
mov ecx, ebx
mov edx, dword [esi + 0x14]
je 0x46db46
call fcn.00467a30
jmp 0x46db4b
call fcn.004497a0
test dword [esi + 4], 0x8000
jne 0x46db5d
mov edx, esi
mov ecx, ebx
call fcn.00419d00
mov edx, dword [edi + 0x44]
mov ecx, ebx
call fcn.00457350
mov edx, edi
mov ecx, ebx
call fcn.00419d00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x28]
mov dword [eax + 0x34], ecx
mov dword [ecx + 0x38], eax
cmp byte [ebx + 0x1c2], 2
jne 0x46dca8
movzx eax, byte [eax + 4]
mov esi, dword [ebx + 8]
sub eax, 0x74
je 0x46dbb6
dec eax
je 0x46dbaf
dec eax
je 0x46dba8
mov eax, str.UNION
jmp 0x46dbbb
mov eax, str.INTERSECT
jmp 0x46dbbb
mov eax, str.EXCEPT
jmp 0x46dbbb
mov eax, str.UNION_ALL
push eax
push 0x50cffc
push dword [esp + 0x68]
push dword [esp + 0x70]
push str.COMPOUND_SUBQUERIES__d_AND__d__s__s_
push dword [ebx]
call fcn.0041b720
mov ecx, dword [esi + 0x18]
add esp, 0x18
mov edi, dword [esi + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x1d0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x50], ecx
cmp dword [ecx + 0x54], edi
jg 0x46dc62
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x46dc00
add eax, eax
jmp 0x46dc05
mov eax, 0x33
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push eax
call fcn.00419fe0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x46dcbf
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
cmp ebx, dword [eax + 0x10c]
jb 0x46dc42
cmp ebx, dword [eax + 0x110]
jae 0x46dc42
movzx ecx, word [eax + 0xf0]
jmp 0x46dc4e
push ebx
call dword [0x52b548]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x50]
shr edx, 4
mov dword [eax + 0x54], edx
mov dword [esi + 4], ebx
mov eax, dword [esi + 4]
lea ecx, [edi + edi*4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0x9e
mov byte [eax + ecx*4 + 3], 0
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 0xffffffffffffffff
push dword [esp + 0x64]
mov edx, edi
mov ecx, esi
call fcn.00437240
add esp, 8
mov ecx, dword [esp + 0x94]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004bd963
mov esp, ebp
pop ebp
ret
mov edi, 1
jmp 0x46dc96