Function at 0x47cbd0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
mov eax, dword [0x519008]
xor eax, esp
mov dword [esp + 0x120], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x60], eax
mov esi, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x50], 1
mov ebx, dword [edi + 8]
mov eax, dword [edi]
mov dword [esp + 0x78], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], ebx
test ebx, ebx
jne 0x47cc3f
cmp dword [edi + 0x74], ebx
jne 0x47cc30
test byte [eax + 0x4c], 8
jne 0x47cc30
mov byte [edi + 0x17], 1
call fcn.004c8600
mov ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x4c], ebx
test esi, esi
je 0x47f2a8
cmp byte [eax + 0x51], 0
jne 0x47f2a8
cmp dword [edi + 0x24], 0
jne 0x47f2a8
push 0
push 0
push 0
mov edx, 0x15
mov ecx, edi
call fcn.004a2880
add esp, 0xc
test eax, eax
jne 0x47f2a8
push 0x30
push eax
lea eax, [esp + 0x88]
push eax
call fcn.00405490
mov eax, dword [esp + 0x6c]
add esp, 0xc
cmp byte [eax], 8
ja 0x47ccaf
mov edx, dword [esi + 0x30]
test edx, edx
je 0x47cca4
mov ecx, dword [esp + 0x24]
call fcn.004ae4e0
and dword [esi + 8], 0xfffffffe
mov dword [esi + 0x30], 0
push 0
mov edx, esi
mov ecx, edi
call fcn.0047fad0
add esp, 4
cmp dword [edi + 0x24], 0
jne 0x47cef3
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x51], 0
jne 0x47f0ee
mov eax, dword [esp + 0x60]
cmp byte [eax], 9
jne 0x47cce7
mov edx, esi
mov ecx, edi
call fcn.00485010
mov edx, esi
mov ecx, edi
call fcn.00466360
test eax, eax
jne 0x47cef3
mov edx, esi
xor esi, esi
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0x20]
shr eax, 3
and eax, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov eax, dword [edx + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0xcc], eax
mov eax, dword [edx + 0x34]
test eax, eax
jne 0x47ce95
mov dword [esp + 0x14], 0x2000
cmp esi, dword [ecx]
jge 0x47ce8d
lea eax, [esi + esi*8]
test byte [ecx + eax*8 + 0x2c], 8
lea eax, [ecx + eax*8]
mov ebx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x34], ecx
je 0x47cddd
mov ecx, dword [esp + 0x10]
mov edx, dword [eax + 0x34]
mov ecx, dword [ecx + 0x24]
call fcn.004a8380
test eax, eax
je 0x47cdd5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
test word [eax + 0x4c], cx
jne 0x47cdd5
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
and byte [edx + 0x2c], 0xd7
mov edx, dword [edx + 0x34]
mov ecx, dword [eax + 0x24]
call fcn.004875c0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
test ecx, ecx
je 0x47ce7d
mov eax, dword [ecx]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
movsx eax, word [edi + 0x2a]
mov edi, dword [esp + 0x28]
cmp eax, dword [esp + 0xc]
jne 0x47ceda
test byte [ecx + 8], 8
jne 0x47ce7d
cmp dword [ecx + 0x30], 0
je 0x47ce2b
test esi, esi
jne 0x47ce2b
test dword [edx + 8], 0x40000
je 0x47ce2b
mov ecx, dword [esp + 0x1c]
cmp dword [ecx], 1
je 0x47ce81
test byte [ecx + 0x74], 0xa
jne 0x47ce81
push dword [esp + 0x64]
mov ecx, edi
push esi
call fcn.004815e0
add esp, 8
test eax, eax
je 0x47ce4b
cmp dword [edi + 0x24], 0
jne 0x47cef3
or esi, 0xffffffff
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [edx + 0x20]
cmp byte [eax + 0x51], 0
mov dword [esp + 0x1c], ecx
jne 0x47f0ee
mov eax, dword [esp + 0x60]
cmp byte [eax], 8
jbe 0x47ce81
mov eax, dword [edx + 0x30]
mov dword [esp + 0x20], eax
mov dword [esp + 0xcc], eax
jmp 0x47ce81
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x34]
inc esi
test eax, eax
je 0x47cd72
test eax, eax
je 0x47cf82
push dword [esp + 0x60]
mov ecx, edi
call fcn.004835b0
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x10]
cmp dword [eax + 0x38], 0
jne 0x47cf6b
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x47cf21
mov dword [edi + 0xd4], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
push dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
push dword [ecx]
push eax
push str.expected__d_columns_for__s_but_got__d
push edi
call fcn.004e9ae0
add esp, 0x14
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x47f16d
cmp dword [ebx + 0x1e8], 0
je 0x47f0f5
mov edx, esi
mov ecx, ebx
call fcn.004ed280
jmp 0x47f16d
mov edx, dword [edi + 8]
test ecx, ecx
jns 0x47cf2c
mov ecx, dword [edx + 0x6c]
dec ecx
mov eax, dword [edx]
cmp byte [eax + 0x51], 0
je 0x47cf59
mov ecx, 0x51e9d8
mov eax, esi
mov ecx, dword [ecx + 8]
mov dword [edi + 0xd4], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
mov eax, dword [edx + 0x68]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov ecx, dword [ecx + 8]
mov dword [edi + 0xd4], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx]
cmp eax, 1
jle 0x47d111
mov ecx, dword [esp + 0x24]
cmp word [ecx + 0x4c], 0
jl 0x47d111
mov dword [esp + 0x114], edi
jmp 0x47cfb4
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 0x24]
lea ecx, [esp + 0x114]
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
call fcn.00481380
cmp dword [esp + 0x118], 0
je 0x47d0fb
lea eax, [esp + 0x114]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], 0x4812c0
mov dword [esp + 0xb8], 0x47fcc0
mov edx, dword [eax + 0x24]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
test edx, edx
je 0x47d055
lea ecx, [esp + 0xb0]
call fcn.004b3e10
mov eax, dword [esp + 0x114]
mov esi, dword [esp + 0x120]
mov ecx, dword [eax]
test esi, esi
je 0x47d0fb
test ecx, ecx
je 0x47d0a3
cmp dword [ecx + 0x1e8], 0
je 0x47d083
mov edx, esi
call fcn.004ed280
jmp 0x47d0fb
cmp esi, dword [ecx + 0x138]
jb 0x47d0a3
cmp esi, dword [ecx + 0x13c]
jae 0x47d0a3
mov eax, dword [ecx + 0x134]
mov dword [esi], eax
mov dword [ecx + 0x134], esi
jmp 0x47d0fb
cmp dword [0x519970], 0
je 0x47d0f1
mov eax, dword [0x51eb78]
test eax, eax
je 0x47d0bf
push eax
call dword [0x5199cc]
add esp, 4
push esi
call dword [0x5199a8]
sub dword [0x51e988], eax
add esp, 4
dec dword [0x51e9ac]
push esi
call dword [0x5199a0]
mov eax, dword [0x51eb78]
add esp, 4
test eax, eax
je 0x47d0fb
push eax
call dword [0x5199d4]
jmp 0x47d0f8
push esi
call dword [0x5199a0]
add esp, 4
cmp dword [esp + 0x11c], 0
jne 0x47cfb0
mov edx, dword [esp + 0x1c]
mov eax, dword [edx]
jmp 0x47d115
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x38], ecx
test eax, eax
jle 0x47d4e9
lea eax, [ecx*8 + 1]
add eax, ecx
lea esi, [edx + eax*8]
mov eax, dword [esi + 0x38]
or eax, dword [esi + 0x3c]
mov dword [esp + 0x34], esi
jne 0x47d15b
push dword [esi + 4]
lea edx, [eax + 0x14]
mov ecx, edi
push 0x503d60
push dword [esi + 8]
call fcn.004a2880
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x18], eax
test eax, eax
je 0x47d4dc
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], 0
call fcn.004b03d0
mov eax, dword [esp + 0xc]
mov ecx, 0x1000
add dword [edi + 0xd0], eax
mov eax, dword [esp + 0x24]
test word [eax + 0x4c], cx
jne 0x47d1bb
movzx eax, byte [esi + 0x24]
mov ecx, edi
mov edx, dword [esp + 0x18]
shr eax, 5
and eax, 1
push eax
mov eax, dword [esp + 0x14]
push dword [esi + 0x2c]
push dword [eax + 0x24]
call fcn.00480fe0
add esp, 0xc
cmp dword [esp + 0x38], 0
mov eax, dword [edi + 0xf0]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 8]
mov dword [edi + 0xf0], eax
jne 0x47d2bb
mov eax, dword [esp + 0x1c]
cmp dword [eax], 1
je 0x47d1ec
test byte [eax + 0x74], 0xa
je 0x47d2bb
mov ecx, dword [esp + 0x28]
mov edx, 0xd
mov edi, dword [ebx + 0x6c]
mov eax, dword [ecx + 0x2c]
inc eax
lea esi, [edi + 1]
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x34]
push esi
push 0
push eax
mov dword [ecx + 0x1c], eax
mov ecx, ebx
call fcn.004c82b0
mov eax, dword [esp + 0x40]
add esp, 0xc
mov byte [esp + 0x114], 0xd
mov dword [esp + 0x124], 0
mov dword [esp + 0x11c], 0
mov dword [eax + 0x18], esi
mov esi, eax
mov dword [esp + 0x120], 0
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x18]
push dword [eax + 0x14]
push str.CO_ROUTINE__u
push 1
push dword [esp + 0x34]
call fcn.004c7d40
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x124]
mov ecx, dword [esp + 0x38]
push eax
call fcn.0047cbd0
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov ecx, ebx
mov eax, dword [esp + 0x11c]
mov edx, dword [esi + 0x1c]
or dword [esi + 0x28], 0x10
mov dword [esi + 0x20], eax
call fcn.004c7af0
mov edx, edi
mov ecx, ebx
call fcn.004c7670
mov edi, dword [esp + 0x28]
jmp 0x47d492
xor eax, eax
mov edx, 0x46
mov dword [esp + 0xc], eax
mov ecx, ebx
mov eax, dword [edi + 0x2c]
inc eax
push eax
mov dword [edi + 0x2c], eax
push 0
mov dword [esi + 0x1c], eax
call fcn.004c8180
mov dword [esp + 0x5c], eax
add esp, 8
inc eax
test byte [esi + 0x28], 8
mov dword [esi + 0x18], eax
jne 0x47d2fb
mov edx, 0x11
mov ecx, ebx
call fcn.004c8250
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x1c]
add ecx, 8
mov dword [esp + 0x2c], ecx
cmp ecx, esi
jae 0x47d3b8
mov edi, edi
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x34], eax
test eax, eax
je 0x47d3a9
test byte [ecx + 0x28], 0x10
jne 0x47d3a9
mov eax, dword [ecx + 8]
mov dword [esp + 0x14], eax
test eax, eax
je 0x47d3a9
mov eax, dword [ecx + 0x10]
mov edx, dword [eax + 0x48]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x40], edx
cmp edx, dword [eax + 0x48]
jne 0x47d3a9
mov edx, dword [esi + 8]
test edx, edx
je 0x47d3a9
mov ecx, dword [esp + 0x14]
call fcn.004e99b0
test eax, eax
jne 0x47d3a5
mov ecx, dword [esp + 0x34]
cmp dword [esp + 0x40], eax
jne 0x47d36f
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x14]
cmp eax, dword [ecx + 0x14]
jne 0x47d3a5
mov edx, dword [esi + 0x14]
push 0xffffffffffffffff
push dword [ecx + 0x24]
xor ecx, ecx
mov edx, dword [edx + 0x24]
call fcn.004a8860
add esp, 8
test eax, eax
jne 0x47d3a5
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, dword [esi + 0x14]
push 0xffffffffffffffff
push dword [eax + 0x2c]
mov edx, dword [edx + 0x2c]
call fcn.004a8860
add esp, 8
test eax, eax
je 0x47d3ee
mov ecx, dword [esp + 0x2c]
add ecx, 0x48
mov dword [esp + 0x2c], ecx
cmp ecx, esi
jb 0x47d310
xor eax, eax
mov dword [esp + 0x2c], eax
test eax, eax
je 0x47d3f4
push dword [eax + 0x2c]
mov edx, 0x6f
mov ecx, ebx
push dword [esi + 0x2c]
call fcn.004c8180
mov eax, dword [esp + 0x34]
add esp, 8
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x14]
movzx eax, word [eax + 6]
mov word [ecx + 6], ax
mov ecx, eax
jmp 0x47d459
mov eax, dword [esp + 0x2c]
jmp 0x47d3be
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x114], 0xc
mov dword [esp + 0x124], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
push dword [eax + 0x14]
push str.MATERIALIZE__u
push 1
push edi
call fcn.004c7d40
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x124]
push eax
mov ecx, edi
call fcn.0047cbd0
mov eax, dword [esp + 0x2c]
add esp, 0x14
movzx ecx, word [eax + 6]
mov eax, dword [esi + 0x10]
mov word [eax + 0x2c], cx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x47d471
mov edx, eax
mov ecx, ebx
call fcn.004c7670
push dword [esi + 0x1c]
mov edx, 0x42
mov ecx, ebx
call fcn.004c81f0
mov edx, dword [esp + 0x58]
add esp, 4
mov ecx, ebx
push eax
call fcn.004c7740
add esp, 4
mov eax, dword [esp + 0x24]
mov byte [edi + 0x13], 0
mov dword [edi + 0x1c], 0
cmp byte [eax + 0x51], 0
jne 0x47f0ee
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], 0
call fcn.004b03d0
mov eax, dword [esp + 0xc]
sub dword [edi + 0xd0], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
mov dword [edi + 0xf0], eax
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, dword [edx]
jl 0x47d123
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x34], eax
mov al, byte [esi + 8]
and al, 1
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x3f], al
mov byte [esp + 0x114], al
mov eax, dword [esi + 8]
and al, 9
cmp al, 1
jne 0x47d557
mov edx, ecx
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
call fcn.004a87e0
add esp, 4
test eax, eax
jne 0x47d553
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x24]
and dword [esi + 8], 0xfffffffe
push eax
call fcn.004af130
mov ecx, eax
add esp, 4
mov dword [esp + 0x30], ecx
mov dword [esi + 0x28], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47d5ac
push dword [ecx]
mov edx, eax
mov ecx, edi
push 0
call fcn.00485d40
mov edx, dword [edi + 0x28]
mov ecx, eax
push 0xfffffffffffffff7
push ecx
mov ecx, dword [esp + 0x30]
lea eax, [edx + 1]
mov dword [esp + 0xe4], edx
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [ecx]
inc ecx
push 0
mov eax, dword [eax]
add eax, ecx
mov ecx, ebx
push eax
push edx
mov edx, 0x71
call fcn.004c7e30
add esp, 0x1c
mov dword [esp + 0xe0], eax
jmp 0x47d5b7
mov dword [esp + 0xe0], 0xffffffff
mov ecx, dword [esp + 0x60]
cmp byte [ecx], 0xc
jne 0x47d5d8
mov eax, dword [esp + 0x6c]
mov edx, 0x71
push dword [eax]
push dword [ecx + 4]
mov ecx, ebx
call fcn.004c8180
add esp, 8
dec dword [edi + 0x38]
test dword [esi + 8], 0x4000
mov eax, dword [edi + 0x38]
mov dword [esp + 0x7c], eax
jne 0x47d5f4
mov ecx, 0x140
mov word [esi + 6], cx
push eax
mov edx, esi
mov ecx, edi
call fcn.004847e0
add esp, 4
cmp dword [esi + 0xc], 0
jne 0x47d626
mov edx, dword [esp + 0xe0]
test edx, edx
js 0x47d626
push 0x72
mov ecx, ebx
call fcn.004c7780
add esp, 4
or byte [esp + 0xec], 1
test byte [esi + 8], 1
je 0x47d694
mov esi, dword [edi + 0x28]
push 0xfffffffffffffff7
push ecx
push 0
lea eax, [esi + 1]
mov dword [esp + 0x124], esi
mov dword [edi + 0x28], eax
mov ecx, edi
mov eax, dword [esp + 0x1c]
push 0
mov edx, dword [eax]
call fcn.00485d40
add esp, 0xc
mov edx, 0x71
mov ecx, ebx
push eax
push 0
push 0
push esi
call fcn.004c7e30
mov dword [esp + 0x130], eax
add esp, 0x14
mov eax, dword [ebx + 0x6c]
test eax, eax
jle 0x47d686
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [ebx + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov esi, dword [esp + 0x10]
mov byte [esp + 0x115], 3
jmp 0x47d69c
mov byte [esp + 0x115], 0
cmp dword [esp + 0x64], 0
mov edx, dword [esp + 0x30]
jne 0x47d88c
test edx, edx
jne 0x47d88c
movzx ecx, byte [esp + 0x3f]
mov edx, 0x4000
mov ax, word [esi + 8]
neg ecx
sbb ecx, ecx
and ax, dx
and ecx, 0x100
or cx, ax
movzx eax, cx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x40], eax
test eax, eax
je 0x47d6ec
mov edx, eax
mov ecx, edi
call fcn.004658a0
movsx eax, word [esi + 6]
mov ecx, edi
mov edx, dword [esp + 0x1c]
push eax
push dword [esp + 0x18]
push dword [esi]
push dword [esp + 0x2c]
push dword [esp + 0x64]
call fcn.00468310
mov ecx, eax
add esp, 0x14
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x47cef3
movzx eax, word [ecx + 0x48]
cmp ax, word [esi + 6]
jge 0x47d729
mov word [esi + 6], ax
cmp byte [esp + 0x3f], 0
je 0x47d73e
mov al, byte [ecx + 0x33]
test al, al
je 0x47d73e
mov byte [esp + 0x115], al
mov edx, dword [esp + 0x20]
test edx, edx
je 0x47d786
cmp byte [ecx + 0x34], 0
movsx edx, byte [ecx + 0x2f]
mov dword [esp + 0xd0], edx
jne 0x47d75c
mov eax, dword [ecx + 0x20]
jmp 0x47d76c
movzx eax, byte [ecx + 0x2e]
lea eax, [eax + eax*4]
add eax, eax
mov eax, dword [ecx + eax*8 + 0x2b0]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x20]
sub edx, dword [eax]
neg edx
sbb edx, edx
and edx, eax
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0xe0]
test eax, eax
js 0x47d7a2
test edx, edx
jne 0x47d7a2
mov edx, eax
mov ecx, ebx
call fcn.004c7300
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x40], 0
je 0x47d856
mov ebx, dword [edi + 0x38]
inc dword [edi + 0x2c]
mov edx, dword [esp + 0x10]
lea esi, [ebx - 1]
sub ebx, 2
push esi
lea eax, [ebx - 1]
mov dword [edi + 0x38], eax
mov edi, dword [edi + 0x2c]
push edi
push ecx
mov ecx, dword [esp + 0x34]
call fcn.004618e0
mov ecx, dword [esp + 0x58]
lea eax, [ebx - 1]
add esp, 0xc
mov edx, 0xb
push eax
push 0
call fcn.004c8180
mov ecx, dword [esp + 0x54]
mov edx, esi
call fcn.004c7a60
mov edx, dword [esp + 0x18]
lea esi, [ebx - 1]
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x11c]
push esi
push ebx
push dword [esp + 0x70]
mov dword [esp + 0xfc], 0
push eax
lea eax, [esp + 0xe4]
push eax
push 0xffffffffffffffff
call fcn.00485ee0
mov edx, ebx
mov ebx, dword [esp + 0x6c]
mov ecx, ebx
call fcn.004c7a60
push edi
mov edx, 0x42
mov ecx, ebx
call fcn.004c81f0
add esp, 0x24
mov edx, esi
mov ecx, ebx
call fcn.004c7a60
mov edi, dword [esp + 0x28]
jmp 0x47f032
push dword [ecx + 0x24]
lea eax, [esp + 0x118]
mov edx, esi
push dword [ecx + 0x20]
mov ecx, edi
push dword [esp + 0x68]
push eax
lea eax, [esp + 0xdc]
push eax
push 0xffffffffffffffff
call fcn.00485ee0
mov ecx, dword [esp + 0x24]
add esp, 0x18
call fcn.00467a10
jmp 0x47f032
mov dword [esp + 0x44], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
test edx, edx
je 0x47d8ec
mov ecx, dword [esi]
mov eax, dword [ecx]
test eax, eax
jle 0x47d8c5
add ecx, 0x1a
xor ebx, ebx
lea ecx, [ecx + 0x18]
dec eax
mov word [ecx - 0x18], bx
test eax, eax
jg 0x47d8b3
mov ebx, dword [esp + 0x4c]
mov eax, dword [edx]
test eax, eax
jle 0x47d8de
lea ecx, [edx + 0x1a]
mov edi, edi
xor edx, edx
lea ecx, [ecx + 0x18]
dec eax
mov word [ecx - 0x18], dx
test eax, eax
jg 0x47d8d0
cmp word [esi + 6], 0x42
jle 0x47d8f2
mov eax, 0x42
jmp 0x47d8ee
xor eax, eax
mov word [esi + 6], ax
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
push 0xffffffffffffffff
call fcn.004a87e0
add esp, 4
test eax, eax
jne 0x47d910
mov dword [esp + 0x64], 1
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x80]
mov dword [esp + 0xfc], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0xf8], ecx
inc eax
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0xf4], edi
mov dword [esp + 0x90], eax
test ecx, ecx
je 0x47d98f
mov eax, dword [ecx]
mov dword [esp + 0x8c], eax
jmp 0x47d99a
mov dword [esp + 0x8c], 0
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0xf4]
call fcn.004a7dc0
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0xf4]
call fcn.004a7dc0
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x47da8a
cmp dword [esp + 0x30], 0
je 0x47da37
mov edx, dword [esi + 0x2c]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], 0x47f3d0
mov dword [esp + 0xc8], esi
test edx, edx
je 0x47da30
lea ecx, [esp + 0xb0]
call fcn.004b3e10
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
mov dword [esp + 0x54], eax
lea eax, [esp + 0xf4]
mov dword [esp + 0xb4], 0x4a7eb0
mov edx, ecx
mov dword [esp + 0xb8], 0x4a7ea0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xbc], 0x4a7e90
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc8], eax
mov dword [esp + 0xb0], 0
call fcn.004b3e10
cmp dword [esi + 0x28], 0
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xac]
mov dword [esp + 0xa4], eax
jne 0x47db6f
cmp dword [esi + 0x2c], 0
jne 0x47db6f
cmp edx, 1
jne 0x47db6f
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x47db64
cmp dword [eax], edx
jne 0x47db64
mov eax, dword [ecx + 8]
mov edx, 0x5110f4
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.004e99b0
test eax, eax
jne 0x47db01
mov byte [esp + 0x5b], al
mov dword [esp + 0xc], 1
jmp 0x47db20
mov ecx, dword [esp + 0x14]
mov edx, 0x5110f8
call fcn.004e99b0
test eax, eax
jne 0x47db5d
mov byte [esp + 0x5b], 1
mov dword [esp + 0xc], 2
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
push 0
mov edx, dword [edx + 0x14]
call fcn.004af130
mov ecx, eax
add esp, 4
mov dword [esp + 0x78], ecx
test ecx, ecx
je 0x47db46
mov al, byte [esp + 0x5b]
mov byte [ecx + 0x10], al
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xac]
movzx eax, ax
movzx eax, ax
mov dword [esp + 0x14], eax
jmp 0x47db77
mov edx, dword [esp + 0xac]
xor eax, eax
movzx eax, ax
mov dword [esp + 0x14], eax
jmp 0x47db77
mov dword [esp + 0x14], 0
test edx, edx
jle 0x47dbd6
mov eax, dword [esp + 0x10c]
xor esi, esi
xor ebx, ebx
or eax, 8
lea ecx, [esp + 0xf4]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0xa8]
mov edx, dword [eax + esi]
mov edx, dword [edx + 0x14]
call fcn.004a7dc0
mov eax, dword [esp + 0x10c]
lea esi, [esi + 0x10]
and eax, 0xfffffff7
inc ebx
mov dword [esp + 0x10c], eax
cmp ebx, dword [esp + 0xac]
jl 0x47db86
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xac]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x51], 0
jne 0x47f0d0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x47eaa1
mov eax, dword [edi + 0x28]
mov edx, ecx
push dword [esp + 0xa0]
mov dword [esp + 0x88], eax
mov ecx, edi
inc eax
push 0
mov dword [edi + 0x28], eax
call fcn.00485d40
mov ecx, dword [ebx + 0x6c]
add esp, 8
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ebx + 0x70], ecx
jg 0x47dc5a
push 0
push edx
push eax
mov edx, 0x72
mov ecx, ebx
call fcn.004c8320
mov edx, eax
add esp, 0xc
mov dword [esp + 0xc], edx
jmp 0x47dc91
mov esi, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4], 0x72
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx]
mov eax, edx
cmp byte [ecx + 0x51], 0
je 0x47dcaf
mov edx, dword [esp + 0x70]
push edx
mov edx, 0xfffffff7
call fcn.004c7440
add esp, 4
jmp 0x47dce7
test edx, edx
jns 0x47dcb7
mov eax, dword [ebx + 0x6c]
dec eax
mov edx, dword [esp + 0x70]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x47dcdc
push 0xfffffffffffffff7
push edx
mov edx, eax
mov ecx, ebx
call fcn.004c71e0
add esp, 8
jmp 0x47dce7
test edx, edx
je 0x47dce7
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf7
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x30]
inc eax
mov dword [esp + 0x38], eax
inc eax
mov dword [esp + 0x18], eax
lea ecx, [eax + 2]
mov eax, dword [edi + 0x38]
dec eax
mov dword [edi + 0x2c], ecx
mov dword [esp + 0x5c], eax
dec eax
mov dword [edi + 0x38], eax
mov dword [esp + 0x20], ecx
add ecx, dword [edx]
mov dword [esp + 0x48], eax
mov dword [edi + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x74], eax
mov eax, dword [edx]
add eax, ecx
mov dword [edi + 0x2c], eax
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47dd4a
push 0
push dword [esp + 0x1c]
mov edx, 0x46
mov ecx, ebx
push 0
call fcn.004c8320
mov edx, dword [esp + 0x3c]
add esp, 0xc
jmp 0x47dd81
mov esi, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x46
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 + 0x20]
mov ecx, dword [ebx + 0x6c]
add edx, eax
cmp dword [ebx + 0x70], ecx
jg 0x47ddab
mov eax, dword [esp + 0x20]
mov ecx, ebx
push edx
inc eax
mov edx, 0x49
push eax
push 0
call fcn.004c8320
add esp, 0xc
jmp 0x47dde3
mov esi, dword [esp + 0x20]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
inc esi
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0x49
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47de06
push 0
push dword [esp + 0x4c]
mov edx, 0xc
mov ecx, ebx
push dword [esp + 0x28]
call fcn.004c8320
add esp, 0xc
jmp 0x47de39
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xc
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 + 0x64]
mov ecx, edi
mov edx, dword [esp + 0x1c]
neg eax
push 0
sbb eax, eax
and eax, 0x200
add eax, 0x40
push eax
push 0
push dword [esp + 0x3c]
push dword [esp + 0x64]
call fcn.00468310
mov edx, eax
add esp, 0x14
mov dword [esp + 0x40], edx
test edx, edx
je 0x47f0d0
mov ecx, dword [esp + 0x30]
movsx eax, byte [edx + 0x2f]
cmp eax, dword [ecx]
jne 0x47de89
xor eax, eax
mov dword [esp + 0x54], eax
jmp 0x47e1df
cmp byte [esp + 0x3f], 0
je 0x47de9b
test byte [esi + 8], 1
mov eax, str.DISTINCT
je 0x47dea0
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push edi
call fcn.004c7d40
mov eax, dword [esp + 0x40]
add esp, 0x10
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x54], 1
mov ecx, dword [eax]
mov esi, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x14], ecx
test edx, edx
jle 0x47def2
mov eax, dword [esp + 0x9c]
add eax, 0xc
mov edi, edi
cmp dword [eax], ecx
jl 0x47dee6
inc esi
inc ecx
add eax, 0x18
sub edx, 1
jne 0x47dee0
mov dword [esp + 0x14], esi
cmp esi, 1
jne 0x47df1f
mov al, byte [edi + 0x13]
test al, al
jne 0x47df0a
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x47df49
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov dword [esp + 0x1c], eax
jmp 0x47df49
mov edx, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp esi, edx
jg 0x47df3a
lea eax, [esi + ecx]
sub edx, esi
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], edx
jmp 0x47df49
mov eax, dword [edi + 0x2c]
lea ecx, [eax + 1]
add eax, esi
mov dword [esp + 0x1c], ecx
mov dword [edi + 0x2c], eax
mov edx, dword [esp + 0x30]
mov ecx, edi
push 0
push 0
push dword [esp + 0x24]
call fcn.004a96a0
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x68], ecx
cmp dword [esp + 0xa0], ecx
jle 0x47dfd1
mov edi, dword [esp + 0xa0]
xor esi, esi
jmp 0x47df80
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x44]
add edx, esi
cmp dword [edx + 0xc], eax
jl 0x47dfbd
add eax, dword [esp + 0x1c]
mov ecx, ebx
push eax
push dword [edx + 8]
push dword [edx + 4]
mov edx, dword [edx]
call fcn.004aaf90
mov eax, dword [esp + 0x50]
add esp, 0xc
mov ecx, dword [esp + 0x68]
inc eax
mov edi, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
inc ecx
add esi, 0x18
mov dword [esp + 0x68], ecx
cmp ecx, edi
jl 0x47df80
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov al, byte [edi + 0x13]
test al, al
jne 0x47dfe0
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
jmp 0x47dfef
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x44], eax
cmp dword [ebx + 0x70], ecx
jg 0x47e016
push eax
push esi
push dword [esp + 0x24]
mov edx, 0x5c
mov ecx, ebx
call fcn.004c8320
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x47e045
mov edx, dword [esp + 0x1c]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x5c
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
mov eax, dword [esp + 0x84]
mov dword [esp + 0x50], eax
cmp dword [ebx + 0x70], ecx
jg 0x47e071
push 0
push edx
push eax
mov edx, 0x83
mov ecx, ebx
call fcn.004c8320
mov edx, dword [esp + 0x50]
add esp, 0xc
jmp 0x47e0a4
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x50]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x83
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 0x47e0bc
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x47e0bc
movzx eax, al
mov dword [edi + eax*4 + 0x94], edx
inc byte [edi + 0x13]
cmp esi, 1
jne 0x47e0df
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x47e0ee
mov al, byte [edi + 0x13]
cmp al, 8
jae 0x47e0ee
movzx eax, al
mov dword [edi + eax*4 + 0x94], ecx
inc byte [edi + 0x13]
jmp 0x47e0ee
cmp esi, dword [edi + 0x1c]
jle 0x47e0ee
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], eax
mov ecx, dword [esp + 0x40]
call fcn.00467a10
mov edx, dword [edi + 0x28]
mov dword [esp + 0x44], edx
mov dword [esp + 0x88], edx
lea eax, [edx + 1]
mov dword [edi + 0x28], eax
mov al, byte [edi + 0x13]
test al, al
jne 0x47e11a
inc dword [edi + 0x2c]
mov eax, dword [edi + 0x2c]
jmp 0x47e129
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov eax, dword [edi + eax*4 + 0x94]
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x68], eax
cmp dword [ebx + 0x70], ecx
jg 0x47e149
push esi
push eax
push edx
mov edx, 0x74
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e178
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x84]
cmp dword [ebx + 0x70], ecx
jg 0x47e19f
push 0
push dword [esp + 0x30]
mov ecx, ebx
push edx
mov edx, 0x22
call fcn.004c8320
add esp, 0xc
jmp 0x47e1ce
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
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 edx, dword [esp + 0x40]
mov eax, 1
mov byte [esp + 0x81], 1
cmp dword [esp + 0x64], 0
je 0x47e238
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x4c], 4
jne 0x47e238
test eax, eax
jne 0x47e1f9
cmp byte [edx + 0x30], al
je 0x47e238
mov ecx, dword [ebx]
mov dword [esp + 0xcc], 0
cmp byte [ecx + 0x51], 0
jne 0x47e238
mov eax, dword [esp + 0xe0]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.004c7440
add esp, 4
mov word [esi], 0xaa
mov dword [esi + 0x10], 0
cmp dword [esp + 0x54], 0
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x64], ecx
je 0x47e29b
mov edx, dword [esp + 0x84]
cmp dword [ebx + 0x70], ecx
jg 0x47e26c
push dword [esp + 0x44]
mov ecx, ebx
push dword [esp + 0x6c]
push edx
mov edx, 0x7e
call fcn.004c8320
add esp, 0xc
jmp 0x47e29b
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x30]
xor esi, esi
mov edx, dword [eax]
test edx, edx
jle 0x47e340
add eax, 4
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x74]
add edx, esi
cmp dword [esp + 0x54], 0
je 0x47e30f
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e2de
push edx
push esi
push dword [esp + 0x4c]
mov edx, 0x5a
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e324
mov edi, dword [esp + 0x44]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x5a
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47e324
mov byte [esp + 0x80], 1
mov ecx, edi
push edx
mov edx, dword [eax]
call fcn.004a9a70
add esp, 4
mov ecx, dword [esp + 0x30]
inc esi
mov eax, dword [esp + 0x14]
add eax, 0x18
mov dword [esp + 0x14], eax
mov edx, dword [ecx]
cmp esi, edx
jl 0x47e2b2
mov eax, ecx
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x47e34c
inc dword [ecx]
mov edx, dword [eax]
mov esi, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], esi
jg 0x47e372
mov eax, dword [esp + 0x20]
mov ecx, ebx
push edx
push dword [esp + 0x78]
inc eax
mov edx, 0x57
push eax
call fcn.004c8320
add esp, 0xc
mov esi, eax
jmp 0x47e3aa
mov edi, dword [esp + 0x20]
lea eax, [esi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 0x68]
inc edi
mov ebx, dword [esp + 0x4c]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x74]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x57
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x47e3c6
mov edx, dword [esp + 0x70]
push edx
mov edx, 0xfffffff7
call fcn.004c7440
add esp, 4
jmp 0x47e3fe
test esi, esi
jns 0x47e3ce
mov esi, dword [ebx + 0x6c]
dec esi
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
mov edx, dword [esp + 0x70]
je 0x47e3f3
push 0xfffffffffffffff7
push edx
mov edx, eax
mov ecx, ebx
call fcn.004c71e0
add esp, 8
jmp 0x47e3fe
test edx, edx
je 0x47e3fe
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xf7
mov esi, dword [ebx + 0x6c]
lea edx, [esi + 1]
cmp dword [ebx + 0x70], esi
jg 0x47e41e
push edx
push 0
push edx
mov edx, 0x10
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e44a
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
mov edi, dword [esp + 0x28]
mov dword [ebx + 0x6c], edx
mov dword [eax + ecx*4], 0x10
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 [edi + 8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x50], ecx
mov edx, dword [ecx + 0x6c]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
cmp dword [ecx + 0x70], edx
jg 0x47e47d
push eax
mov eax, dword [esp + 0x24]
mov edx, 0x4d
inc eax
push eax
push dword [esp + 0x7c]
call fcn.004c8320
add esp, 0xc
jmp 0x47e4b9
mov ebx, dword [esp + 0x4c]
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x74]
mov eax, dword [eax + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x20]
inc edx
mov dword [eax + ecx*4], 0x4d
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e4de
mov eax, dword [esp + 0x18]
mov edx, 0xc
push 0
push dword [esp + 0x60]
inc eax
mov ecx, ebx
push eax
call fcn.004c8320
add esp, 0xc
jmp 0x47e516
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
inc edx
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e539
push 0
push dword [esp + 0x30]
mov edx, 0x2f
mov ecx, ebx
push dword [esp + 0x20]
call fcn.004c8320
add esp, 0xc
jmp 0x47e56c
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4], 0x2f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e58f
push 0
push dword [esp + 0x4c]
mov edx, 0xc
mov ecx, ebx
push dword [esp + 0x28]
call fcn.004c8320
add esp, 0xc
jmp 0x47e5c2
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov dword [eax + ecx*4], 0xc
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 + 0x6c]
test esi, esi
jns 0x47e5cc
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
je 0x47e5db
mov eax, 0x51e9d8
jmp 0x47e5e4
mov eax, dword [ebx + 0x68]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov esi, dword [esp + 0x38]
mov ecx, edi
mov dword [eax + 8], edx
lea eax, [esp + 0x80]
push eax
mov edx, esi
call fcn.0047f500
mov ecx, dword [ebx + 0x6c]
add esp, 4
cmp dword [ebx + 0x70], ecx
jg 0x47e61d
push 0
push esi
push 1
mov edx, 0x46
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e64c
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x54], 0
je 0x47e6ab
mov ecx, dword [ebx + 0x6c]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
cmp dword [ebx + 0x70], ecx
jg 0x47e67e
push 0
push esi
push edx
mov edx, 3
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e6e5
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 3
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x47e6e5
mov ecx, dword [esp + 0x40]
call fcn.00467a10
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
jne 0x47e6e5
mov eax, dword [esp + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
push dword [eax + edx*4 + 0x10]
lea esi, [eax + edx*4]
movsx edx, byte [esi + 1]
call fcn.004c7440
add esp, 4
mov word [esi], 0xaa
mov dword [esi + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e70a
mov eax, dword [esp + 0x18]
mov edx, 0xc
push 0
push dword [esp + 0x60]
inc eax
mov ecx, ebx
push eax
call fcn.004c8320
add esp, 0xc
jmp 0x47e73e
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
inc edx
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e75f
push 0
push dword [esp + 0x30]
mov edx, 0xb
mov ecx, ebx
push 0
call fcn.004c8320
add esp, 0xc
jmp 0x47e792
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], esi
jg 0x47e7b7
push 0
push dword [esp + 0x1c]
mov edx, 0x46
mov ecx, ebx
push 1
call fcn.004c8320
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x47e7ea
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
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 [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e80b
push 0
lea eax, [edx + 1]
mov ecx, ebx
push 0
push eax
mov edx, 0x42
call fcn.004c8320
add esp, 0xc
jmp 0x47e843
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
inc edx
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x42
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 [ebx + 0xc]
mov edx, dword [esp + 0x5c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x47e861
push edx
mov edx, ebx
call fcn.004c7a90
add esp, 4
jmp 0x47e86a
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + 1]
lea edx, [eax + 2]
mov dword [esp + 0x14], ecx
cmp dword [ebx + 0x70], eax
jg 0x47e894
push 0
push edx
push dword [esp + 0x40]
mov edx, 0x2f
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47e8c4
mov edi, dword [esp + 0x38]
mov dword [ebx + 0x6c], ecx
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x2f
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47e8e7
mov eax, dword [esp + 0x18]
mov edx, 0x42
push 0
inc eax
mov ecx, ebx
push 0
push eax
call fcn.004c8320
add esp, 0xc
jmp 0x47e91f
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
inc edx
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x42
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
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.0047f900
push 0x10
push dword [esp + 0x18]
push dword [esp + 0x3c]
push edi
call fcn.004a8d60
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x124]
push esi
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x78]
push eax
lea eax, [esp + 0xec]
push eax
push 0xffffffffffffffff
call fcn.00485ee0
mov ecx, dword [ebx + 0x6c]
add esp, 0x28
mov esi, 0x42
cmp dword [ebx + 0x70], ecx
jg 0x47e98b
mov eax, dword [esp + 0x18]
mov edx, esi
push 0
inc eax
mov ecx, ebx
push 0
push eax
call fcn.004c8320
add esp, 0xc
jmp 0x47e9bf
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
inc edx
mov dword [eax + ecx*4], 0x42
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 [ebx + 0xc]
mov edx, dword [esp + 0x48]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x47e9dd
push edx
mov edx, ebx
call fcn.004c7a90
add esp, 4
jmp 0x47e9e6
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.0047f9e0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47ea15
push 0
push dword [esp + 0x3c]
mov edx, 0x46
mov ecx, ebx
push 0
call fcn.004c8320
add esp, 0xc
jmp 0x47ea48
mov edx, dword [esp + 0x38]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
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 [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47ea69
push 0
push 0
push dword [esp + 0x28]
mov edx, esi
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47ee2d
mov edx, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x42
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
jmp 0x47ee2d
cmp dword [esi + 0x24], 0
jne 0x47ee52
mov eax, dword [esi]
cmp dword [eax], 1
jne 0x47ee52
mov ecx, dword [esi + 0x20]
cmp dword [ecx], 1
jne 0x47ee52
cmp dword [ecx + 0x1c], 0
jne 0x47ee52
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x5c], ecx
cmp dword [ecx + 0x38], 0
jne 0x47ee52
mov eax, dword [eax + 4]
cmp byte [eax], 0xa3
jne 0x47ee52
test edx, edx
je 0x47ee52
mov eax, dword [esp + 0xa8]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x47ee52
mov edi, dword [esi]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x28]
test byte [eax + 4], 2
jne 0x47ee52
mov edx, dword [ecx + 0x48]
mov ecx, 0xfff0bdc0
mov dword [esp + 0x38], ecx
test edx, edx
je 0x47eb4c
mov eax, dword [edi]
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], edx
je 0x47eb4c
lea ecx, [ecx]
lea eax, [eax + 0x10]
inc ecx
cmp dword [eax], edx
jne 0x47eb40
mov dword [esp + 0x38], ecx
mov eax, dword [edi + 0x28]
xor esi, esi
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
inc eax
mov dword [edi + 0x28], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov eax, dword [edx + 0x1c]
mov edx, dword [edi + 0x74]
mov dword [esp + 0xc], eax
test edx, edx
jne 0x47eb73
mov edx, edi
mov eax, dword [edx + 0x54]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
mov eax, 1
shl eax, cl
test dword [esp + 0x14], eax
jne 0x47eba5
mov eax, dword [esp + 0x14]
bts eax, ecx
mov dword [edx + 0x54], eax
cmp ecx, 1
jne 0x47eba5
mov ecx, edx
call fcn.0049b260
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
mov edx, ecx
mov ecx, edi
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.004a2730
mov edx, dword [esp + 0x68]
add esp, 0xc
test byte [edx + 0x24], 0x20
je 0x47ebe0
mov esi, dword [edx + 8]
test esi, esi
je 0x47ebe0
lea ecx, [ecx]
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x47ebe0
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x47ebd0
mov eax, dword [edx + 8]
test eax, eax
je 0x47ec10
test byte [eax + 0x38], 4
jne 0x47ec09
movzx ecx, word [eax + 0x30]
cmp cx, word [edx + 0x2e]
jge 0x47ec09
cmp dword [eax + 0x24], 0
jne 0x47ec09
test esi, esi
je 0x47ec07
cmp cx, word [esi + 0x30]
jge 0x47ec09
mov esi, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x47ebe7
test esi, esi
je 0x47ec28
mov eax, dword [esi + 0x2c]
mov edx, esi
mov ecx, edi
mov dword [esp + 0xc], eax
call fcn.0049a6a0
mov dword [esp + 0x40], eax
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0x50], ecx
cmp dword [ebx + 0x70], ecx
jg 0x47ec56
mov edx, dword [esp + 0x38]
mov ecx, ebx
push edx
mov edx, dword [esp + 0x10]
push edx
mov edx, dword [esp + 0x50]
push edx
mov edx, 0x6c
call fcn.004c8320
add esp, 0xc
mov ecx, eax
jmp 0x47ec8d
mov edx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x38]
mov dword [eax + ecx*4], 0x6c
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x50]
mov eax, dword [ebx]
cmp byte [eax + 0x51], 0
jne 0x47eca8
mov eax, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 1
mov edx, dword [esp + 0x40]
test edx, edx
je 0x47ecf4
mov ecx, dword [ebx]
cmp byte [ecx + 0x51], 0
je 0x47ecc8
push edx
mov edx, 0xfffffff7
call fcn.004c7440
add esp, 4
jmp 0x47ecf4
mov eax, dword [ebx + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
cmp byte [eax + ecx*4 - 0x13], 0
lea eax, [eax + ecx*4]
je 0x47eced
push 0xfffffffffffffff7
push edx
lea edx, [eax - 0x14]
mov ecx, ebx
call fcn.004c71e0
add esp, 8
jmp 0x47ecf4
mov dword [eax - 4], edx
mov byte [eax - 0x13], 0xf7
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebx + 0x6c]
mov eax, dword [eax + 8]
mov dword [esp + 0x50], eax
cmp dword [ebx + 0x70], ecx
jg 0x47ed26
push 0
push eax
push dword [esp + 0x50]
mov edx, 0x5d
mov ecx, ebx
call fcn.004c8320
mov edx, dword [esp + 0x54]
add esp, 0xc
jmp 0x47ed5d
mov edi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*4]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov dword [eax + ecx*4], 0x5d
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47ed7b
push 0
push 0
push edx
mov edx, 0x75
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47edae
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov ebx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x75
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 [edi + 0xc7], 2
jne 0x47edf2
mov edx, dword [esp + 0x5c]
test esi, esi
je 0x47edd7
test byte [edx + 0x24], 0x20
je 0x47edce
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
je 0x47edd7
mov eax, dword [esi]
mov ecx, str._USING_COVERING_INDEX
jmp 0x47edde
mov eax, 0x503d60
mov ecx, eax
push eax
push ecx
push dword [edx]
push str.SCAN_TABLE__s_s_s
push 0
push edi
call fcn.004c7d40
add esp, 0x18
mov esi, dword [esp + 0x10]
push 0x10
push dword [esp + 0x30]
mov dword [esp + 0xd4], 0
push dword [esp + 0x3c]
push edi
call fcn.004a8d60
mov eax, dword [esp + 0x3c]
mov edx, esi
push eax
push eax
push dword [esp + 0x78]
mov ecx, edi
push 0
push 0
push 0xffffffffffffffff
call fcn.00485ee0
add esp, 0x28
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x2c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x47f029
push edx
mov edx, ebx
call fcn.004c7a90
add esp, 4
jmp 0x47f032
cmp dword [esp + 0xa4], 0
mov dword [esp + 0xc], 0
je 0x47eefb
xor ecx, ecx
test edx, edx
jle 0x47ee9b
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
add edx, 4
nop
mov eax, dword [edx]
test byte [eax + 4], 0x20
jne 0x47ee90
inc ecx
add edx, 0x10
cmp ecx, esi
jl 0x47ee80
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xac]
cmp ecx, edx
jne 0x47eefb
mov edx, dword [edi + 0x2c]
inc edx
mov dword [edi + 0x2c], edx
mov ecx, dword [ebx + 0x6c]
mov dword [esp + 0xc], edx
cmp dword [ebx + 0x70], ecx
jg 0x47eec8
push 0
push edx
push 0
mov edx, 0x46
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47eefb
mov esi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
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
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.0047f9e0
mov edx, dword [esp + 0x1c]
mov ecx, edi
push 0
push dword [esp + 0x18]
push 0
push dword [esp + 0x84]
push dword [esp + 0x64]
call fcn.00468310
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
je 0x47f0d0
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x80]
push eax
mov ecx, edi
call fcn.0047f500
mov edx, dword [esp + 0x10]
add esp, 4
test edx, edx
je 0x47efa5
mov ecx, dword [ebx + 0x6c]
cmp dword [ebx + 0x70], ecx
jg 0x47ef72
push 0
push edx
push 1
mov edx, 0x46
mov ecx, ebx
call fcn.004c8320
add esp, 0xc
jmp 0x47efa5
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4], 0x46
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 edx, dword [esp + 0x14]
cmp byte [edx + 0x2f], 0
jle 0x47f00f
mov ecx, dword [ebx + 0x6c]
mov eax, dword [edx + 0x24]
mov dword [esp + 0x50], eax
cmp dword [ebx + 0x70], ecx
jg 0x47efd8
push 0
push eax
push 0
mov edx, 0xb
mov ecx, ebx
call fcn.004c8320
mov edx, dword [esp + 0x20]
add esp, 0xc
jmp 0x47f00f
mov esi, dword [esp + 0x50]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [ebx + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0xb
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, edx
call fcn.00467a10
lea edx, [esp + 0x80]
mov ecx, edi
call fcn.0047f900
jmp 0x47edf6
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
cmp byte [esp + 0x115], 3
jne 0x47f051
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push 0
push edi
call fcn.004c7d40
add esp, 0x10
cmp dword [esp + 0xcc], 0
je 0x47f09d
cmp dword [esp + 0xd0], 0
mov eax, str.RIGHT_PART_OF_ORDER_BY
jg 0x47f06f
mov eax, str.ORDER_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
push 0
push edi
call fcn.004c7d40
mov eax, dword [esp + 0x7c]
mov ecx, edi
push dword [esp + 0x70]
mov edx, dword [esp + 0x24]
push dword [eax]
lea eax, [esp + 0xe4]
push eax
call fcn.004853f0
add esp, 0x1c
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x7c]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x47f0bb
push edx
mov edx, ebx
call fcn.004c7a90
add esp, 4
jmp 0x47f0c4
mov ecx, dword [ecx + 0x40]
mov eax, dword [ebx + 0x6c]
mov dword [ecx + edx*4], eax
xor eax, eax
cmp dword [edi + 0x24], eax
setg al
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
test eax, eax
je 0x47cef7
mov edx, eax
mov ecx, ebx
call fcn.004ae4e0
jmp 0x47cef7
mov ebx, eax
jmp 0x47cef7
cmp esi, dword [ebx + 0x138]
jb 0x47f115
cmp esi, dword [ebx + 0x13c]
jae 0x47f115
mov eax, dword [ebx + 0x134]
mov dword [esi], eax
mov dword [ebx + 0x134], esi
jmp 0x47f16d
cmp dword [0x519970], 0
je 0x47f163
mov eax, dword [0x51eb78]
test eax, eax
je 0x47f131
push eax
call dword [0x5199cc]
add esp, 4
push esi
call dword [0x5199a8]
sub dword [0x51e988], eax
add esp, 4
dec dword [0x51e9ac]
push esi
call dword [0x5199a0]
mov eax, dword [0x51eb78]
add esp, 4
test eax, eax
je 0x47f16d
push eax
call dword [0x5199d4]
jmp 0x47f16a
push esi
call dword [0x5199a0]
add esp, 4
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x47f218
cmp dword [ebx + 0x1e8], 0
je 0x47f193
mov edx, esi
mov ecx, ebx
call fcn.004ed280
jmp 0x47f218
cmp esi, dword [ebx + 0x138]
jb 0x47f1ba
cmp esi, dword [ebx + 0x13c]
jae 0x47f1ba
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebx + 0x134]
mov dword [eax], ecx
mov dword [ebx + 0x134], esi
jmp 0x47f218
cmp dword [0x519970], 0
je 0x47f208
mov eax, dword [0x51eb78]
test eax, eax
je 0x47f1d6
push eax
call dword [0x5199cc]
add esp, 4
push esi
call dword [0x5199a8]
sub dword [0x51e988], eax
add esp, 4
dec dword [0x51e9ac]
push esi
call dword [0x5199a0]
mov eax, dword [0x51eb78]
add esp, 4
test eax, eax
je 0x47f218
push eax
call dword [0x5199d4]
jmp 0x47f215
push dword [esp + 0xa8]
call dword [0x5199a0]
add esp, 4
mov ecx, dword [edi + 0xd4]
test ecx, ecx
jne 0x47f243
xor eax, eax
mov dword [edi + 0xd4], eax
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
mov esi, dword [edi + 8]
test ecx, ecx
jns 0x47f24e
mov ecx, dword [esi + 0x6c]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
je 0x47f27d
mov eax, 0x51e9d8
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0x68]
lea eax, [ecx + edx*4]
mov eax, dword [eax + 8]
mov dword [edi + 0xd4], eax
mov eax, dword [esp + 0x50]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x12c]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00403d8c
mov esp, ebp
pop ebp
ret