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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x1d4]
mov dword [ebp - 0xa8], eax
mov eax, dword [esi + 0x1d8]
push edi
mov edi, dword [esi]
mov dword [esi + 0x1d4], eax
inc eax
mov dword [ebp - 0x20], 1
mov dword [esi + 0x1d8], eax
mov dword [ebp - 0x38], edi
test ebx, ebx
je 0x47335a
cmp byte [edi + 0x40], 0
jne 0x47335a
cmp dword [esi + 0x44], 0
jne 0x47335a
push 0
push 0
push 0
push 0x15
mov eax, esi
call fcn.00491a70
add esp, 0x10
test eax, eax
jne 0x47335a
push 0x30
push eax
lea ecx, [ebp - 0xa4]
push ecx
call fcn.004fbb00
mov edx, dword [ebp + 0x10]
add esp, 0xc
cmp byte [edx], 4
ja 0x471b09
mov eax, dword [ebx + 0x38]
push eax
call fcn.00474ca0
mov ecx, 0xfffe
add esp, 4
and word [ebx + 6], cx
mov dword [ebx + 0x38], 0
push 0
push ebx
push esi
call fcn.004712e0
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx]
add esp, 0xc
cmp dword [esi + 0x44], 0
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ecx
jne 0x473308
mov edx, edi
cmp byte [edx + 0x40], 0
jne 0x473308
movzx eax, word [ebx + 6]
shr eax, 2
and eax, 1
mov dword [ebp - 0x18], eax
mov edi, esi
mov eax, edi
call fcn.0046c670
mov esi, eax
mov dword [ebp - 0x50], esi
test esi, esi
je 0x473308
mov ecx, dword [ebp - 0x44]
cmp dword [ecx], 1
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
jle 0x471b8a
cmp eax, 6
je 0x471b77
cmp eax, 7
jne 0x471b8a
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push edi
call fcn.0044f750
add esp, 8
jmp 0x473308
xor eax, eax
mov dword [ebp - 0x34], eax
cmp dword [ebx + 0x3c], eax
jne 0x471e61
jmp 0x471ba3
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x40]
cmp eax, dword [ecx]
jge 0x471e61
lea edx, [eax + eax*4]
add edx, edx
mov eax, dword [ecx + edx*8 + 0x1c]
lea ebx, [ecx + edx*8 + 8]
mov dword [ebp - 8], eax
test eax, eax
je 0x471e4f
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x471beb
test byte [ebx + 0x28], 4
jne 0x471e4f
push eax
mov eax, dword [ebx + 0x1c]
push eax
push 0x11
call fcn.00478ca0
add esp, 0xc
jmp 0x471e4f
mov eax, dword [ebp + 0xc]
lea edi, [ebp - 0x28]
mov dword [ebp - 0x28], 0
call fcn.004737b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
add dword [eax + 0x1d0], ecx
mov edx, dword [ebp - 8]
movzx edi, word [edx + 6]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x34]
shr edi, 2
and edi, 1
push edi
push ecx
push edx
push eax
mov eax, dword [ebp + 0xc]
call fcn.0046f9f0
add esp, 0x10
test eax, eax
je 0x471c4e
test edi, edi
je 0x471c42
mov eax, dword [ebp + 0xc]
or word [eax + 6], 4
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x34], 0xffffffff
jmp 0x471e0e
mov eax, dword [ebp - 0x40]
cmp dword [eax], 1
jne 0x471d0b
mov edi, dword [esi + 0x20]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x4c]
inc edi
push edi
inc eax
push 0
push eax
mov dword [ecx + 0x4c], eax
push 0x14
mov dword [ebx + 0x1c], eax
call fcn.00478b80
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
push edx
push 0x54b538
push esi
call fcn.00479490
mov eax, dword [ebx + 0x1c]
mov dword [ebx + 0x18], edi
mov dword [ebp - 0xb8], eax
xor eax, eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x1d8]
mov word [ebp - 0xbc], 9
lea edx, [ebp - 0xbc]
mov byte [ebx + 0x2c], cl
mov ecx, dword [ebp - 8]
push edx
push ecx
push eax
call fcn.00471a60
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x20]
mov edx, dword [ebx + 0x10]
mov dword [edx + 0x1c], ecx
mov eax, dword [ebx + 0x1c]
or dword [ebx + 0x28], 4
mov edx, dword [ebp - 0xb4]
push eax
push 0x15
mov dword [ebx + 0x20], edx
call fcn.00478c40
add esp, 0x30
lea eax, [edi - 1]
mov edx, esi
call fcn.004791a0
mov eax, dword [ebp + 8]
mov byte [eax + 0x13], 0
mov dword [eax + 0x3c], 0
jmp 0x471e0e
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x4c]
inc eax
push eax
push 0
mov dword [edi + 0x4c], eax
push 0x19
mov dword [ebp - 0xc], 0
mov dword [ebx + 0x1c], eax
call fcn.00478ca0
mov dword [ebp - 0x28], eax
inc eax
add esp, 0xc
test byte [ebx + 0x28], 2
mov dword [ebx + 0x18], eax
jne 0x471d59
mov eax, edi
call fcn.004750a0
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
push edx
push str.materialize___s_
push esi
mov dword [ebp - 0xc], eax
call fcn.00479490
add esp, 0xc
jmp 0x471d71
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
push ecx
push str.materialize___s_
mov edi, esi
call fcn.004794e0
mov edi, dword [ebp + 8]
add esp, 8
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebp - 8]
mov dl, byte [edi + 0x1d8]
mov dword [ebp - 0xb8], eax
xor eax, eax
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], eax
lea eax, [ebp - 0xbc]
push eax
push ecx
mov word [ebp - 0xbc], 8
push edi
mov byte [ebx + 0x2c], dl
call fcn.00471a60
mov eax, dword [ebp - 8]
mov edx, dword [ebx + 0x10]
mov ecx, dword [eax + 0x20]
add esp, 0xc
cmp dword [ebp - 0xc], 0
mov dword [edx + 0x1c], ecx
je 0x471dca
mov eax, dword [ebp - 0xc]
mov edx, esi
call fcn.004791a0
mov edx, dword [ebx + 0x1c]
push edx
push 0x12
call fcn.00478c40
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
push ecx
push str.end__s
push esi
call fcn.00479490
mov edx, dword [ebp - 0x28]
add esp, 0x14
cmp dword [esi + 0x20], edx
jbe 0x471e03
mov ecx, dword [esi + 4]
mov eax, edx
mov edx, dword [ebp - 0x10]
lea eax, [eax + eax*2]
mov dword [ecx + eax*8 + 4], edx
mov byte [edi + 0x13], 0
mov dword [edi + 0x3c], 0
mov eax, dword [ebp - 0x38]
cmp byte [eax + 0x40], 0
jne 0x473308
mov ebx, dword [ebp + 0xc]
lea edi, [ebp - 0x28]
mov eax, ebx
mov dword [ebp - 0x28], 0
call fcn.004737b0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x28]
sub dword [eax + 0x1d0], ecx
mov eax, dword [ebp + 0x10]
cmp byte [eax], 4
mov edx, dword [ebx + 0x28]
mov dword [ebp - 0x40], edx
jbe 0x471e4f
mov ecx, dword [ebx + 0x38]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp + 0xc]
inc dword [ebp - 0x34]
cmp dword [edx + 0x3c], 0
mov ebx, edx
je 0x471ba0
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x30]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x28], eax
mov al, byte [ebx + 6]
and al, 1
cmp dword [ebx + 0x3c], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov byte [ebp - 0x6c], al
je 0x471eab
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
push ecx
push ebx
mov eax, esi
call fcn.0046d130
mov edx, dword [ebp - 0xa8]
add esp, 8
pop edi
mov dword [esi + 0x1d4], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 4]
push 0xffffffffffffffff
push eax
call fcn.00478430
add esp, 8
test eax, eax
jne 0x471ec3
mov dword [ebp - 0x14], eax
mov cl, byte [ebx + 6]
and cl, 5
cmp cl, 1
jne 0x471fce
mov edx, dword [ebx]
mov edi, dword [ebp - 0x14]
push 0xffffffffffffffff
push edx
call fcn.00478430
add esp, 8
test eax, eax
jne 0x471fce
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x38]
push 0
push ecx
mov eax, 0xfffe
and word [ebx + 6], ax
push edx
call fcn.00474490
add esp, 0xc
mov dword [ebx + 0x30], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 0
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 8], 0xffffffff
mov ecx, dword [ebp + 0x10]
cmp byte [ecx], 8
jne 0x471f3a
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov edx, dword [ecx + 4]
push eax
push edx
push 0x37
call fcn.00478ca0
add esp, 0xc
mov eax, esi
call fcn.00478f10
push eax
mov dword [ebp - 0xe0], eax
push edi
mov eax, ebx
mov dword [edi + 0x20], 0xffffffff
mov dword [edi + 0x24], connect
call fcn.0046c6b0
add esp, 8
cmp dword [edi + 8], 0
jne 0x471f7f
cmp dword [ebp - 8], 0
jl 0x471f7f
mov eax, dword [ebp - 8]
mov ecx, esi
call fcn.00479560
mov byte [eax], 0x38
or word [edi + 6], 0x40
test byte [edi + 6], 1
je 0x472016
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x68], eax
inc eax
mov dword [ebx + 0x48], eax
mov eax, dword [edi]
push 0xfffffffffffffffa
push ebx
call fcn.0046b1f0
add esp, 4
push eax
mov eax, dword [ebp - 0x68]
push 0
push 0
push eax
push 0x37
call fcn.00478d00
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 4]
add esp, 0x18
test eax, eax
je 0x471fc8
mov ecx, dword [esi + 0x20]
lea ecx, [ecx + ecx*2]
mov byte [eax + ecx*8 - 0x15], 8
mov byte [ebp - 0x6b], 3
jmp 0x47201a
cmp dword [ebp - 0x14], 0
je 0x471f11
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x14]
push ebx
mov eax, edi
call fcn.0046b1f0
mov ecx, dword [ebx + 0x48]
push 0xfffffffffffffffa
push eax
mov dword [edi + 4], ecx
inc dword [ebx + 0x48]
mov edx, dword [edi]
mov eax, dword [edi + 4]
push 0
add edx, 2
push edx
push eax
push 0x37
call fcn.00478d00
mov edi, dword [ebp + 0xc]
add esp, 0x1c
mov dword [ebp - 8], eax
mov dword [edi + 0x18], eax
jmp 0x471f1e
mov byte [ebp - 0x6b], 0
mov edx, dword [ebp - 4]
xor eax, eax
cmp dword [ebp - 0x18], eax
jne 0x472108
cmp edx, eax
jne 0x472108
movzx edx, byte [ebp - 0x6c]
mov ecx, dword [ebp - 0x14]
push eax
mov eax, dword [edi]
neg edx
sbb edx, edx
and edx, 0x400
push edx
mov edx, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x40]
push ecx
push edx
push eax
push ebx
call fcn.004ab910
add esp, 0x1c
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x473308
mov ecx, eax
mov ax, word [ecx + 0x20]
call fcn.00450970
cmp edx, dword [edi + 0x24]
ja 0x472080
jb 0x47207a
cmp eax, dword [edi + 0x20]
jae 0x472080
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
cmp byte [ebp - 0x6c], 0
je 0x472093
mov edx, dword [ebp - 0x3c]
mov al, byte [edx + 0x27]
test al, al
je 0x472093
mov byte [ebp - 0x6b], al
cmp dword [ebp - 0x14], 0
je 0x4720a9
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0x24], 0
je 0x4720a9
mov dword [ebp - 0x14], 0
cmp dword [ebp - 8], 0
jl 0x4720d3
cmp dword [ebp - 0x14], 0
jne 0x4720d3
mov ebx, dword [ebp - 8]
push esi
call fcn.004792f0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp + 8]
add esp, 4
mov dword [ecx + 0x18], 0xffffffff
mov edi, ecx
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov ecx, dword [ebp + 0x10]
push edx
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0x44]
lea edx, [ebp - 0x6c]
push edx
push eax
push 0xffffffffffffffff
push ecx
push edi
push ebx
call fcn.0046a630
mov edx, dword [ebp - 0x3c]
push edx
call fcn.004ac1a0
add esp, 0x28
jmp 0x473102
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
cmp edx, eax
je 0x472169
mov ecx, dword [edi]
mov eax, dword [ecx]
mov ecx, dword [ecx + 8]
test eax, eax
jle 0x472130
add ecx, 0x16
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x18
test eax, eax
jg 0x472120
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov edx, dword [edx + 8]
test eax, eax
jle 0x47214d
lea ecx, [edx + 0x16]
lea esp, [esp]
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x18
test eax, eax
jg 0x472140
cmp dword [edi + 0x24], 0
mov eax, 0x64
ja 0x47215d
cmp dword [edi + 0x20], eax
jbe 0x472173
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], 0
jmp 0x472173
mov dword [edi + 0x20], 1
mov dword [edi + 0x24], eax
mov eax, esi
call fcn.00478f10
mov edx, dword [ebx + 0x4c]
mov dword [ebp - 0x5c], eax
xor eax, eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 4]
inc edx
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - 0x94], edx
test eax, eax
je 0x4721e6
mov eax, dword [eax]
inc eax
mov dword [ebp - 0x98], eax
jmp 0x4721f0
mov dword [ebp - 0x98], 0
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x44]
lea edx, [ebp - 0xdc]
push edx
mov dword [ebp - 0x8c], ecx
call fcn.004789a0
mov ebx, dword [ebp - 0x14]
lea eax, [ebp - 0xdc]
push eax
call fcn.004789a0
mov ecx, dword [ebp - 0x28]
add esp, 8
test ecx, ecx
je 0x472230
lea edx, [ebp - 0xdc]
push edx
call fcn.00478960
add esp, 4
mov eax, dword [ebp - 0x84]
xor esi, esi
mov dword [ebp - 0x80], eax
cmp dword [ebp - 0x78], esi
jle 0x472271
xor edi, edi
or byte [ebp - 0xc0], 8
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx + edi]
mov ebx, dword [edx + 0x14]
lea eax, [ebp - 0xdc]
push eax
call fcn.004789a0
and byte [ebp - 0xc0], 0xf7
inc esi
add esp, 4
add edi, 0x10
cmp esi, dword [ebp - 0x78]
jl 0x472242
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x4c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x90], edx
cmp byte [eax + 0x40], 0
jne 0x473308
xor edi, edi
cmp dword [ebp - 4], edi
je 0x472e06
mov edi, ecx
mov eax, dword [edi + 0x48]
mov dword [ebp - 0xa0], eax
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [ebp - 4]
push edi
call fcn.0046b1f0
mov ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0xa0]
mov ebx, dword [ebp - 0x50]
push 0xfffffffffffffffa
push eax
push 0
push ecx
push edx
push 0x38
mov esi, ebx
mov dword [ebp - 0x4c], eax
call fcn.00478d00
inc dword [edi + 0x4c]
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x4c]
lea esi, [eax + 1]
mov dword [ebp - 0x74], eax
lea eax, [esi + 1]
mov dword [ebp - 0x60], eax
mov dword [edi + 0x4c], eax
mov eax, ebx
mov dword [ebp - 0x10], esi
call fcn.00478f10
inc dword [edi + 0x4c]
mov dword [ebp - 0x70], eax
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x30], eax
mov eax, ebx
call fcn.00478f10
mov dword [ebp - 0x48], eax
mov eax, dword [edi + 0x4c]
lea ecx, [eax + 1]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 4]
add eax, dword [ecx]
push esi
mov dword [edi + 0x4c], eax
mov ecx, dword [ecx]
lea edx, [eax + 1]
add ecx, eax
push 0
push 0x19
mov esi, ebx
mov dword [ebp - 0x18], edx
mov dword [edi + 0x4c], ecx
call fcn.00478ca0
push str.clear_abort_flag
push ebx
call fcn.00479490
mov edx, dword [ebp - 0x74]
push edx
push 0
push 0x19
call fcn.00478ca0
push str.indicate_accumulator_empty
push ebx
call fcn.00479490
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x54]
add esp, 0x44
lea edx, [eax + ecx - 1]
push edx
push eax
push 0
push 0x1c
call fcn.00478b80
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x30]
push eax
push ecx
push 0x11
call fcn.00478ca0
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x40]
push 0
push 0x100
push 0
push edx
push eax
push ecx
push edi
call fcn.004ab910
add esp, 0x38
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x473308
cmp byte [eax + 0x24], 0
je 0x4723b8
mov dword [ebp - 0xc], 0
jmp 0x4726f1
cmp byte [ebp - 0x6c], 0
je 0x4723cc
mov edx, dword [ebp + 0xc]
test byte [edx + 6], 1
mov eax, str.DISTINCT
je 0x4723d1
mov eax, str.GROUP_BY
mov esi, edi
call fcn.0046b290
mov eax, dword [ebp - 4]
mov edi, dword [eax]
mov dword [ebp - 0x20], edi
inc edi
cmp dword [ebp - 0x84], 0
mov dword [ebp - 0xc], 1
mov eax, edi
mov dword [ebp - 8], edi
mov ecx, edi
jle 0x472425
mov edx, dword [ebp - 0x88]
add edx, 0xc
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x84]
mov dword [ebp - 0x24], edx
lea ecx, [ecx]
mov edx, dword [ebp - 0x1c]
cmp dword [edx], ecx
jl 0x472419
inc eax
inc ecx
add dword [ebp - 0x1c], 0x18
dec dword [ebp - 0x24]
jne 0x472410
mov dword [ebp - 8], eax
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x40]
mov dword [ebp - 0x58], edx
cmp eax, ecx
jg 0x47243e
add edx, eax
sub ecx, eax
mov dword [esi + 0x40], edx
mov dword [esi + 0x3c], ecx
jmp 0x47244c
mov ecx, dword [esi + 0x4c]
lea edx, [ecx + 1]
add ecx, eax
mov dword [ebp - 0x58], edx
mov dword [esi + 0x4c], ecx
mov eax, esi
call fcn.004764f0
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 4]
push esi
push eax
xor cl, cl
call fcn.004778c0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xa0]
add esi, eax
push esi
push ecx
push 0x44
mov esi, ebx
call fcn.00478ca0
add esp, 0x14
cmp dword [ebp - 0x84], 0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x34], 0
jle 0x472506
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x88]
add edx, edi
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + eax + 0xc], edi
jl 0x4724f3
mov edx, dword [ecx + eax + 4]
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp + 8]
push 0
push esi
push edx
mov edx, dword [ecx + eax + 8]
mov eax, dword [ecx + eax]
push edx
push eax
call fcn.00476450
add esp, 0x14
cmp esi, eax
je 0x4724df
mov ecx, esi
push ecx
push eax
push 0x22
mov esi, ebx
call fcn.00478ca0
add esp, 0xc
mov eax, 1
add dword [ebp - 0x24], eax
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
add dword [ebp - 0x1c], 0x18
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebp - 0x84]
jl 0x4724a3
mov ecx, dword [ebp + 8]
mov al, byte [ecx + 0x13]
test al, al
jne 0x472518
inc dword [ecx + 0x4c]
mov edi, dword [ecx + 0x4c]
jmp 0x472524
dec al
movzx edx, al
mov byte [ecx + 0x13], al
mov edi, dword [ecx + edx*4 + 0x1c]
mov esi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x58], esi
jg 0x47253c
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472568
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp - 8]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ecx
mov word [eax], 0x30
mov dword [eax + 0x14], ecx
mov esi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x24], eax
cmp dword [ecx + 0x58], esi
jg 0x472589
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4725b2
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x24]
lea edx, [esi + esi*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x6a
mov dword [eax + 0x14], ecx
test edi, edi
je 0x4725de
mov esi, dword [ebp + 8]
mov dl, byte [esi + 0x13]
cmp dl, 8
jae 0x4725de
xor eax, eax
lea ecx, [esi + 0x78]
cmp dword [ecx + 0xc], edi
je 0x47262c
inc eax
add ecx, 0x14
cmp eax, 0xa
jl 0x4725c6
movzx edx, dl
mov dword [esi + edx*4 + 0x1c], edi
inc byte [esi + 0x13]
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x58]
mov eax, esi
call fcn.004760e0
mov eax, dword [ebp - 8]
cmp eax, dword [esi + 0x3c]
jle 0x4725fe
mov ecx, eax
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], edi
mov edx, dword [ebp - 0x3c]
push edx
call fcn.004ac1a0
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x9c], eax
inc eax
mov dword [esi + 0x48], eax
mov al, byte [esi + 0x13]
add esp, 4
test al, al
jne 0x472632
inc dword [esi + 0x4c]
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x1c], eax
jmp 0x472641
mov byte [ecx + 6], 1
jmp 0x4725de
dec al
movzx ecx, al
mov byte [esi + 0x13], al
mov edx, dword [esi + ecx*4 + 0x1c]
mov dword [ebp - 0x1c], edx
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x58], edi
jg 0x472659
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472688
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 0xc], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0x10], ecx
mov word [eax], 0x39
mov dword [eax + 0x14], ecx
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x20], edx
cmp dword [eax + 0x58], edi
jg 0x4726a9
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4726d5
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x5c]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x67
mov dword [eax + 0x14], ecx
push str.GROUP_BY_sort
push ebx
call fcn.00479490
add esp, 8
mov eax, esi
mov byte [ebp - 0xa3], 1
call fcn.004764f0
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
call fcn.004764f0
cmp dword [ebp - 0xc], 0
je 0x47274c
mov edi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebp - 0xa0]
cmp dword [ecx + 0x58], edi
jg 0x472723
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x47274c
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x1c]
lea edx, [edi + edi*2]
lea eax, [eax + edx*8]
mov dword [eax + 8], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], esi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x5f
mov dword [eax + 0x14], ecx
mov edx, dword [ebp - 4]
xor esi, esi
cmp dword [edx], esi
jle 0x4727f8
lea esp, [esp]
cmp dword [ebp - 0xc], 0
je 0x4727c5
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x58], edi
jg 0x47277e
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4727ad
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
lea ecx, [esi + edx]
mov dword [eax + 0xc], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], esi
mov dword [eax + 0x10], ecx
mov word [eax], 0x2e
mov dword [eax + 0x14], ecx
test esi, esi
jne 0x4727ec
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4727ec
mov eax, dword [ebx + 0x20]
lea edx, [eax + eax*2]
mov byte [ecx + edx*8 - 0x15], 0x20
jmp 0x4727ec
mov eax, dword [ebp - 0x18]
lea ecx, [esi + eax]
mov eax, dword [ebp - 4]
push ecx
mov byte [ebp - 0xa4], 1
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 8]
lea edx, [esi + esi*2]
mov edx, dword [ecx + edx*8]
push edx
push eax
call fcn.004776f0
add esp, 0xc
mov ecx, dword [ebp - 4]
inc esi
cmp esi, dword [ecx]
jl 0x472760
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x472801
inc dword [eax]
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 4]
mov esi, dword [edx]
cmp dword [eax + 0x58], edi
jg 0x472825
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
je 0x472825
mov eax, 1
jmp 0x472853
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x18]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], ecx
mov word [eax], 0x29
mov dword [eax + 0x14], ecx
mov eax, edi
mov ecx, dword [ebx + 4]
mov edi, dword [ebx]
test ecx, ecx
je 0x47289a
cmp byte [edi + 0x40], 0
jne 0x47289a
test eax, eax
jns 0x47286a
mov eax, dword [ebx + 0x20]
dec eax
lea eax, [eax + eax*2]
lea esi, [ecx + eax*8]
movsx eax, byte [esi + 1]
mov ecx, dword [esi + 0x10]
call fcn.004791c0
mov eax, dword [ebp - 0x4c]
xor edi, edi
mov dword [esi + 0x10], edi
cmp eax, edi
jne 0x472891
mov dword [esi + 0x10], edi
mov byte [esi + 1], 0
jmp 0x4728a9
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
jmp 0x4728a9
mov ecx, dword [ebp - 0x4c]
mov eax, 0xfffffffa
call fcn.004791c0
xor edi, edi
mov esi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x4c], esi
cmp dword [ecx + 0x58], esi
jg 0x4728c4
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4728ec
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x4c]
lea edx, [esi + esi*2]
lea eax, [eax + edx*8]
inc ecx
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edi
mov word [eax], 0x2a
mov dword [eax + 0x14], edi
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp + 8]
push edx
push eax
call fcn.004765c0
mov esi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
add esp, 8
cmp dword [ecx + 0x58], esi
jg 0x47291c
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x47294a
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x60]
lea edx, [esi + esi*2]
lea eax, [eax + edx*8]
mov edx, dword [ebp - 0x70]
xor esi, esi
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x11
mov dword [eax + 0x14], esi
jmp 0x47294c
xor esi, esi
push str.output_one_row
push ebx
call fcn.00479490
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add esp, 8
cmp dword [eax + 0x58], edi
jg 0x472972
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x47299c
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x5c]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x84
mov dword [eax + 0x14], esi
push str.check_abort_flag
push ebx
call fcn.00479490
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add esp, 8
cmp dword [eax + 0x58], edi
jg 0x4729c2
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4729ec
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x48]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x11
mov dword [eax + 0x14], esi
push str.reset_accumulator
push ebx
call fcn.00479490
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp - 0x4c]
add esp, 8
cmp eax, ecx
jbe 0x472a0e
mov edx, dword [ebx + 4]
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*8 + 8], eax
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
dec eax
lea edx, [ebp - 0xa4]
mov dword [ecx + 0x5c], eax
mov eax, dword [ebp + 8]
push edx
push eax
call fcn.00471520
mov edi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
add esp, 8
cmp dword [ecx + 0x58], edi
jg 0x472a43
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472a6f
mov eax, dword [ebx + 4]
mov ecx, 1
add dword [ebx + 0x20], ecx
lea edx, [edi + edi*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x74]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x19
mov dword [eax + 0x14], esi
push str.indicate_data_in_accumulator
push ebx
call fcn.00479490
add esp, 8
cmp dword [ebp - 0xc], esi
je 0x472acf
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x2c], edx
cmp dword [eax + 0x58], edi
jg 0x472aa3
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472b20
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x20]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 5
mov dword [eax + 0x14], esi
jmp 0x472b20
mov eax, dword [ebp - 0x3c]
push eax
call fcn.004ac1a0
mov ecx, dword [ebx + 4]
add esp, 4
cmp ecx, esi
je 0x472b20
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebx]
lea edx, [eax + eax*2]
movsx eax, byte [ecx + edx*8 + 1]
lea ecx, [ecx + edx*8]
mov dword [ebp - 0x54], ecx
mov ecx, dword [ecx + 0x10]
call fcn.004791c0
mov eax, dword [ebp - 0x54]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], esi
mov byte [eax], 0x9b
mov eax, dword [ebx + 0x20]
dec eax
cmp dword [ebp - 0x2c], eax
jne 0x472b20
mov dword [ebx + 0x20], eax
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x58], edi
jg 0x472b38
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472b62
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x70]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x11
mov dword [eax + 0x14], esi
push str.output_final_row
push ebx
call fcn.00479490
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add esp, 8
cmp dword [eax + 0x58], edi
jg 0x472b88
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472baf
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x5c]
mov byte [eax + 3], 0
mov dword [eax + 4], esi
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x10
mov dword [eax + 0x14], esi
mov edi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x18]
mov dword [ebp - 0x2c], edi
cmp dword [edx + 0x58], edi
jg 0x472bca
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472bf6
mov edx, dword [ebx + 4]
mov ecx, 1
add dword [ebx + 0x20], ecx
lea eax, [edi + edi*2]
lea eax, [edx + eax*8]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x10]
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x19
mov dword [eax + 0x14], esi
push str.set_abort_flag
push ebx
call fcn.00479490
mov edi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x18]
add esp, 8
cmp dword [edx + 0x58], edi
jg 0x472c1c
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472c43
mov ecx, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [ebp - 0x60]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*8]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x12
mov dword [eax + 0x14], esi
mov ecx, dword [ebx + 0x18]
or eax, 0xffffffff
sub eax, dword [ebp - 0x70]
js 0x472c5b
mov edx, dword [ecx + 0x74]
cmp edx, esi
je 0x472c5b
mov edi, dword [ebx + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [ebx + 0x20]
dec eax
mov dword [ecx + 0x5c], eax
mov edi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
cmp dword [ecx + 0x58], edi
jg 0x472c7a
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472ca4
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x74]
lea edx, [edi + edi*2]
lea eax, [eax + edx*8]
lea edx, [edi + 2]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x84
mov dword [eax + 0x14], esi
push str.Groupby_result_generator_entry_point
push ebx
call fcn.00479490
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ecx + 0x58], eax
jg 0x472ccd
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472cf7
mov eax, dword [ebp - 0x10]
inc dword [ebx + 0x20]
mov ecx, dword [ebp - 0x60]
lea edx, [eax + eax*2]
mov eax, dword [ebx + 4]
lea eax, [eax + edx*8]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x12
mov dword [eax + 0x14], esi
mov eax, dword [ebp + 8]
lea edx, [ebp - 0xa4]
push edx
call fcn.00471420
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
push 8
inc edi
push edi
push eax
push ecx
call fcn.00477f00
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x10]
push edx
mov edx, dword [ebp - 0x14]
push edi
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, dword [eax]
push edx
mov edx, dword [ebp + 8]
push 0xffffffffffffffff
push ecx
push eax
push edx
call fcn.0046a630
mov edi, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
add esp, 0x38
cmp dword [eax + 0x58], edi
jg 0x472d55
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472d7c
mov edx, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*8]
mov ecx, dword [ebp - 0x60]
mov byte [eax + 3], 0
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x12
mov dword [eax + 0x14], esi
push str.end_groupby_result_generator
push ebx
call fcn.00479490
mov ecx, dword [ebx + 0x18]
or eax, 0xffffffff
add esp, 8
sub eax, dword [ebp - 0x48]
js 0x472da2
mov edx, dword [ecx + 0x74]
cmp edx, esi
je 0x472da2
mov edi, dword [ebx + 0x20]
mov dword [edx + eax*4], edi
mov edx, dword [ebx + 0x20]
dec edx
lea eax, [ebp - 0xa4]
mov dword [ecx + 0x5c], edx
mov ecx, dword [ebp + 8]
push eax
push ecx
call fcn.00471340
mov edi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x18]
add esp, 8
cmp dword [edx + 0x58], edi
jg 0x472dda
push ebx
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x4730e0
xor esi, esi
mov ecx, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [ebp - 0x30]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*8]
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], esi
mov word [eax], 0x12
mov dword [eax + 0x14], esi
jmp 0x4730e0
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0xa4]
mov eax, esi
mov dword [ebp - 0x48], edi
call fcn.00470050
mov ebx, eax
mov dword [ebp - 0x2c], ebx
cmp ebx, edi
je 0x472f9e
mov edi, dword [ebp + 8]
mov esi, dword [ebx + 0x44]
mov ecx, dword [edi]
call fcn.00446530
mov esi, eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x30], eax
inc eax
mov dword [edi + 0x48], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x10], eax
mov ecx, esi
mov eax, edi
call fcn.0044d1e0
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x20]
push ecx
push 0
push edx
push esi
mov eax, edi
call fcn.00447af0
add esp, 0x10
test byte [ebx + 0x2c], 0x20
je 0x472e7e
mov eax, ebx
call fcn.00448d30
mov ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x472e81
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 8]
test eax, eax
je 0x472eb4
test byte [eax + 0x38], 4
jne 0x472eaa
movzx edx, word [eax + 0x30]
cmp dx, word [ebx + 0x2a]
jge 0x472eaa
cmp dword [eax + 0x24], 0
jne 0x472eaa
test ecx, ecx
je 0x472ea8
cmp dx, word [ecx + 0x30]
jge 0x472eaa
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x472e88
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x472ecb
mov eax, dword [ecx + 0x2c]
push ecx
push edi
mov dword [ebp - 0x10], eax
call fcn.0044dbb0
add esp, 8
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x30]
push 1
push esi
mov esi, dword [ebp - 0x50]
push ecx
push edx
push 0x34
mov eax, esi
call fcn.00478e60
add esp, 0x14
cmp dword [ebp - 0xc], 0
je 0x472f2f
mov ecx, dword [esi + 4]
mov edi, dword [esi]
test ecx, ecx
je 0x472f1f
cmp byte [edi + 0x40], 0
jne 0x472f1f
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*2 - 3]
lea ebx, [ecx + eax*8]
movsx eax, byte [ebx + 1]
mov ecx, dword [ebx + 0x10]
call fcn.004791c0
mov ecx, dword [ebp - 0xc]
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], 0xfa
mov ebx, dword [ebp - 0x2c]
jmp 0x472f2c
mov ecx, dword [ebp - 0xc]
mov eax, 0xfffffffa
call fcn.004791c0
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx + 8]
mov ecx, dword [ebp - 0x30]
push eax
push ecx
push 0x31
call fcn.00478ca0
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x18]
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [edx + 0x58], eax
jg 0x472f5f
push esi
call fcn.00478b00
add esp, 4
test eax, eax
jne 0x472f8b
mov ecx, dword [esi + 4]
inc dword [esi + 0x20]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x30]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x3a
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x18]
push ebx
mov ecx, edi
call fcn.00471a00
add esp, 4
jmp 0x47309b
xor bl, bl
mov dword [ebp - 0x30], edi
cmp dword [esi + 0x34], edi
jne 0x472ff6
lea edi, [ebp - 0x30]
lea eax, [ebp - 0xa4]
call fcn.0046ffe0
mov bl, al
test bl, bl
je 0x472ff3
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x38]
push 0
push eax
push esi
call fcn.00474490
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x48], edi
test edi, edi
je 0x472ff6
cmp byte [esi + 0x40], 0
jne 0x472ff6
mov edx, dword [edi + 8]
cmp bl, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [edi + 8]
mov ecx, dword [eax]
mov byte [ecx], 0x9a
jmp 0x472ff6
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp + 8]
lea edx, [ebp - 0xa4]
push edx
push esi
call fcn.00471340
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x40]
push 0
movzx ecx, bl
push ecx
push 0
push edi
push edx
push eax
push esi
call fcn.004ab910
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x47303a
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x38]
push ecx
call fcn.00474ca0
add esp, 4
jmp 0x473308
lea edx, [ebp - 0xa4]
push edx
push esi
call fcn.00471520
add esp, 8
cmp byte [edi + 0x24], 0
je 0x473084
mov eax, dword [edi + 0x34]
mov esi, dword [ebp - 0x50]
push eax
push 0
push 0x10
call fcn.00478ca0
add esp, 0xc
mov eax, 0x54c88c
cmp bl, 1
je 0x473072
mov eax, 0x54c888
push eax
push str._s___by_index
push esi
call fcn.00479490
mov esi, dword [ebp + 8]
add esp, 0xc
push edi
call fcn.004ac1a0
lea ecx, [ebp - 0xa4]
push ecx
mov eax, esi
call fcn.00471420
add esp, 8
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp + 8]
push 8
push esi
push edx
push edi
mov dword [ebp - 0x14], 0
call fcn.00477f00
mov eax, dword [ebp + 0x10]
push esi
push esi
push eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push 0
push 0
push 0xffffffffffffffff
push ecx
push eax
push edi
call fcn.0046a630
mov edx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x38]
push edx
call fcn.00474ca0
mov ebx, dword [ebp - 0x50]
add esp, 0x38
mov ecx, dword [ebx + 0x18]
or eax, 0xffffffff
sub eax, dword [ebp - 0x5c]
js 0x4730f8
mov edx, dword [ecx + 0x74]
test edx, edx
je 0x4730f8
mov esi, dword [ebx + 0x20]
mov dword [edx + eax*4], esi
mov eax, dword [ebx + 0x20]
mov esi, dword [ebp - 0x50]
dec eax
mov dword [ecx + 0x5c], eax
cmp byte [ebp - 0x6b], 3
jne 0x4731e4
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x1c6], 2
jne 0x4731e4
mov ebx, ecx
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push edx
call fcn.0047e560
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x1d4]
mov ebx, dword [edi + 0x20]
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ecx + 0x58], ebx
jg 0x473163
push edi
call fcn.00478b00
add esp, 4
test eax, eax
je 0x473163
mov eax, 1
xor ecx, ecx
jmp 0x47318e
mov eax, dword [edi + 4]
inc dword [edi + 0x20]
mov ecx, dword [ebp - 0x2c]
lea edx, [ebx + ebx*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x9c
mov dword [eax + 0x14], ecx
mov eax, ebx
mov ebx, dword [edi + 4]
mov edx, dword [edi]
cmp ebx, ecx
je 0x4731d7
cmp byte [edx + 0x40], 0
jne 0x4731d7
cmp eax, ecx
jge 0x4731a5
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*2]
mov ecx, dword [ebx + eax*8 + 0x10]
lea ebx, [ebx + eax*8]
movsx eax, byte [ebx + 1]
mov edi, edx
call fcn.004791c0
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov dword [ebx + 0x10], ecx
cmp eax, ecx
jne 0x4731ce
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], cl
jmp 0x4731e4
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xff
jmp 0x4731e4
mov ecx, dword [ebp - 0x10]
or eax, 0xffffffff
mov edi, edx
call fcn.004791c0
cmp dword [ebp - 0x14], 0
je 0x4732df
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x1c6], 2
jne 0x4732c4
mov ebx, ecx
mov edx, dword [ebx]
mov edi, dword [ebx + 8]
push str.ORDER_BY
push str.USE_TEMP_B_TREE_FOR__s
push edx
call fcn.0047e560
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x1d4]
mov ebx, dword [edi + 0x20]
add esp, 0xc
mov dword [ebp - 0x2c], eax
cmp dword [ecx + 0x58], ebx
jg 0x473243
push edi
call fcn.00478b00
add esp, 4
test eax, eax
je 0x473243
mov eax, 1
jmp 0x47326e
mov eax, dword [edi + 4]
inc dword [edi + 0x20]
mov ecx, dword [ebp - 0x2c]
lea edx, [ebx + ebx*2]
lea eax, [eax + edx*8]
mov dword [eax + 4], ecx
xor ecx, ecx
mov byte [eax + 3], 0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov word [eax], 0x9c
mov dword [eax + 0x14], ecx
mov eax, ebx
mov ebx, dword [edi + 4]
mov edx, dword [edi]
test ebx, ebx
je 0x4732b7
cmp byte [edx + 0x40], 0
jne 0x4732b7
test eax, eax
jns 0x473285
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*2]
mov ecx, dword [ebx + eax*8 + 0x10]
lea ebx, [ebx + eax*8]
movsx eax, byte [ebx + 1]
mov edi, edx
call fcn.004791c0
mov eax, dword [ebp - 0x10]
xor ecx, ecx
mov dword [ebx + 0x10], ecx
cmp eax, ecx
jne 0x4732ae
mov dword [ebx + 0x10], ecx
mov byte [ebx + 1], cl
jmp 0x4732c4
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xff
jmp 0x4732c4
mov ecx, dword [ebp - 0x10]
or eax, 0xffffffff
mov edi, edx
call fcn.004791c0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov edx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp + 0xc]
push eax
push esi
push ecx
push edx
call fcn.0046b350
add esp, 0x14
mov ecx, dword [esi + 0x18]
or eax, 0xffffffff
sub eax, dword [ebp - 0xe0]
js 0x4732fa
mov edx, dword [ecx + 0x74]
test edx, edx
je 0x4732fa
mov edi, dword [esi + 0x20]
mov dword [edx + eax*4], edi
mov eax, dword [esi + 0x20]
dec eax
mov dword [ecx + 0x5c], eax
mov dword [ebp - 0x20], 0
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp + 8]
mov dword [eax + 0x1d4], ecx
test edi, edi
jne 0x473337
mov edx, dword [ebp + 0x10]
cmp byte [edx], 5
jne 0x473337
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x40]
push ecx
push edx
push eax
call fcn.0046bf30
add esp, 0xc
mov esi, dword [ebp - 0x38]
mov eax, dword [ebp - 0x88]
mov ecx, esi
call fcn.0044f250
mov eax, dword [ebp - 0x7c]
mov ecx, esi
call fcn.0044f250
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret