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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
mov eax, dword [0x631040]
xor eax, esp
mov dword [esp + 0xf0], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 0x38], eax
push esi
xor ecx, ecx
mov dword [esp + 0x30], ebx
mov esi, edx
mov dword [esp + 0x40], ecx
mov eax, dword [ebx + 0x1a0]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x1a4]
mov dword [ebx + 0x1a0], eax
inc eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], 1
mov dword [ebx + 0x1a4], eax
push edi
mov edi, dword [ebx]
mov dword [esp + 0x20], edi
test esi, esi
je 0x48c8d3
cmp byte [edi + 0x45], cl
jne 0x48c8d3
cmp dword [ebx + 0x24], ecx
jne 0x48c8d3
push ecx
push ecx
push ecx
push 0x15
pop edx
mov ecx, ebx
call fcn.00476b0c
add esp, 0xc
test eax, eax
jne 0x48c8d3
push 0x30
push eax
lea eax, [esp + 0xc4]
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x4c]
add esp, 0xc
cmp byte [eax], 8
ja 0x48b488
mov edx, dword [esi + 0x2c]
test edx, edx
je 0x48b47d
mov ecx, edi
call fcn.00470fe7
xor eax, eax
and dword [esi + 8], 0xfffffffe
mov dword [esi + 0x2c], eax
jmp 0x48b48a
xor eax, eax
push eax
mov edx, esi
mov ecx, ebx
call fcn.0048af3f
pop ecx
push 8
pop eax
mov ecx, eax
lea edi, [esp + 0x7c]
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
cmp dword [ebx + 0x24], ecx
jne 0x48c889
cmp byte [edi + 0x45], cl
jne 0x48c889
mov edx, dword [esi + 8]
shr edx, 3
and edx, 1
cmp dword [esi + 0x30], ecx
mov dword [esp + 0x14], edx
jmp 0x48b5aa
cmp ecx, dword [eax]
jge 0x48b5b4
imul edi, ecx, 0x50
mov dword [esp + 0xec], edi
mov edi, dword [edi + eax + 0x1c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xec]
cmp dword [edi + eax + 0x1c], 0
mov edi, dword [esp + 0x20]
je 0x48b5a5
mov ebx, dword [esp + 0xec]
mov eax, dword [ebx + eax + 0x18]
mov dword [esp + 0x24], eax
movsx ebx, word [eax + 0x2a]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xec], ebx
mov eax, dword [eax]
mov eax, dword [eax]
cmp ebx, eax
mov ebx, dword [esp + 0x34]
jne 0x48b5ed
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
shr eax, 3
and eax, 1
push eax
push edx
push ecx
mov edx, esi
mov dword [esp + 0x30], eax
mov ecx, ebx
call fcn.00489c6c
add esp, 0xc
test eax, eax
je 0x48b578
cmp dword [esp + 0x24], 0
je 0x48b573
xor eax, eax
inc eax
push 8
mov dword [esp + 0x18], eax
pop eax
or dword [esi + 8], eax
or ecx, 0xffffffff
jmp 0x48b57c
mov ecx, dword [esp + 0x48]
cmp byte [edi + 0x45], 0
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x1c], eax
jne 0x48c889
mov edx, dword [esp + 0x40]
cmp byte [edx], 8
mov edx, dword [esp + 0x14]
jbe 0x48b5a5
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x1c]
inc ecx
cmp dword [esi + 0x30], 0
mov dword [esp + 0x48], ecx
je 0x48b4dd
mov ecx, ebx
call fcn.004883d4
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x48c881
xor edx, edx
cmp dword [esi + 0x30], edx
je 0x48b60e
push dword [esp + 0x40]
mov edx, esi
mov ecx, ebx
call fcn.00488922
pop ecx
mov ecx, dword [esp + 0x74]
mov dword [ebx + 0x1a0], ecx
jmp 0x48c8d6
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
push dword [esp + 0xf4]
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.0044c1da
add esp, 0x14
jmp 0x48c885
mov eax, dword [esp + 0x1c]
mov ecx, edx
mov dword [esp + 0x38], edx
cmp dword [eax], edx
jle 0x48b8fc
imul ecx, ecx, 0x50
mov dword [esp + 0x10], ecx
mov edx, dword [ecx + eax + 0x1c]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x48b8eb
mov edx, dword [ecx + eax + 0x20]
test edx, edx
je 0x48b663
test byte [ecx + eax + 0x30], 0x10
jne 0x48b8eb
push 0
push edx
push dword [ecx + eax + 0x24]
mov ecx, edi
push 0xe
pop edx
call fcn.00460e33
add esp, 0xc
jmp 0x48b8e7
xor eax, eax
lea edx, [esp + 0xec]
mov ecx, esi
mov dword [esp + 0xec], eax
call fcn.0046ff75
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xec]
add dword [ebx + 0x19c], eax
test byte [edx + ecx + 0x2c], 0x20
jne 0x48b6b2
push dword [edx + ecx + 0x38]
mov edx, dword [esp + 0x40]
mov ecx, ebx
push dword [esi + 0x20]
call fcn.0048a22d
mov edx, dword [esp + 0x18]
pop ecx
pop ecx
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x38], 0
jne 0x48b7b1
cmp dword [ecx], 1
je 0x48b6cc
test byte [ecx + 0x7c], 0xa
je 0x48b7b1
test byte [esi + 8], 2
jne 0x48b7b1
mov eax, dword [esp + 0x20]
mov esi, 0x100
test word [eax + 0x40], si
jne 0x48b7b1
mov edi, dword [edi + 0x88]
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [edx + ecx + 0x24], eax
mov ecx, dword [esp + 0x30]
lea esi, [edi + 1]
push esi
push 0
push eax
push 0xf
pop edx
call fcn.00460e33
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
mov byte [esp + 0x9c], 0xd
mov dword [ecx + eax + 0x20], esi
mov esi, eax
mov eax, dword [ecx + esi + 0x24]
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov al, byte [ebx + 0x1a4]
mov byte [ecx + esi + 0x34], al
lea eax, [esp + 0x9c]
push eax
mov ecx, ebx
call fcn.0048b3c0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x40]
pop ecx
mov ecx, dword [edx + esi + 0x18]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov eax, dword [esp + 0xa8]
or dword [edx + esi + 0x30], 0x10
mov ecx, dword [esp + 0x30]
mov dword [edx + esi + 0x28], eax
mov edx, dword [edx + esi + 0x24]
call fcn.00461033
mov edx, edi
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.00461566
mov ecx, dword [edi + 0x88]
mov dword [eax + 8], ecx
jmp 0x48b8ac
mov eax, dword [ebx + 0x2c]
xor ecx, ecx
mov esi, dword [esp + 0x1c]
inc eax
push ecx
push eax
push ecx
mov dword [ebx + 0x2c], eax
mov dword [esp + 0xf8], ecx
mov ecx, edi
mov dword [edx + esi + 0x24], eax
push 0x4d
pop edx
call fcn.00460e33
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x24], eax
inc eax
test byte [ecx + esi + 0x30], 8
mov dword [ecx + esi + 0x20], eax
jne 0x48b80a
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0x14
pop edx
call fcn.00460e33
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0xec], eax
mov eax, dword [ecx + esi + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xa4], eax
xor eax, eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov al, byte [ebx + 0x1a4]
mov byte [ecx + esi + 0x34], al
lea eax, [esp + 0x9c]
push eax
mov ecx, ebx
mov byte [esp + 0xa0], 0xc
call fcn.0048b3c0
mov eax, dword [esp + 0x40]
pop ecx
mov ecx, dword [esp + 0x10]
mov ax, word [eax + 6]
mov ecx, dword [ecx + esi + 0x18]
mov word [ecx + 0x2c], ax
mov eax, dword [esp + 0xec]
test eax, eax
je 0x48b883
mov edx, eax
mov ecx, edi
call fcn.00461566
mov ecx, dword [edi + 0x88]
mov dword [eax + 8], ecx
xor eax, eax
mov ecx, edi
push eax
push eax
mov eax, dword [esp + 0x18]
push dword [eax + esi + 0x24]
push 0x49
pop edx
call fcn.00460e33
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, edi
mov esi, eax
call fcn.00461566
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
xor ecx, ecx
mov byte [ebx + 0x13], cl
mov dword [ebx + 0x1c], ecx
cmp byte [eax + 0x45], cl
jne 0x48c881
mov esi, dword [esp + 0x58]
lea edx, [esp + 0xec]
mov dword [esp + 0xec], ecx
mov ecx, esi
call fcn.0046ff75
mov eax, dword [esp + 0xec]
sub dword [ebx + 0x19c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
inc ecx
mov dword [esp + 0x38], ecx
cmp ecx, dword [eax]
jl 0x48b620
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov edx, dword [esi]
inc ecx
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0xec], eax
mov al, byte [esi + 8]
and al, cl
mov dword [esp + 0x44], edx
mov byte [esp + 0xf0], al
mov eax, dword [esi + 8]
and al, 9
cmp al, cl
jne 0x48b95c
mov ecx, dword [esp + 0x7c]
push 0xffffffffffffffff
call fcn.004741a9
pop ecx
test eax, eax
jne 0x48b95c
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x20]
and dword [esi + 8], 0xfffffffe
push eax
call fcn.00470967
pop ecx
mov dword [esp + 0x10], eax
mov dword [esi + 0x24], eax
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x48b9b6
mov eax, dword [esp + 0x44]
mov ecx, ebx
push dword [eax]
xor eax, eax
push eax
call fcn.00487746
mov edx, dword [ebx + 0x28]
mov ecx, eax
push 0xfffffffffffffffb
push ecx
mov dword [esp + 0x94], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
xor eax, eax
push eax
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
mov eax, dword [esp + 0x90]
inc ecx
mov eax, dword [eax]
add eax, ecx
mov ecx, edi
push eax
push edx
push 0x6c
pop edx
call fcn.00460f47
add esp, 0x1c
mov dword [esp + 0x90], eax
jmp 0x48b9be
or dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x40]
cmp byte [eax], 0xc
jne 0x48b9df
mov ecx, dword [esp + 0x44]
push 0
push dword [ecx]
mov ecx, edi
push dword [eax + 8]
push 0x6c
pop edx
call fcn.00460e33
add esp, 0xc
mov ecx, edi
call fcn.00461058
mov ecx, 0x4000
mov dword [esp + 0x78], eax
test dword [esi + 8], ecx
jne 0x48b9fd
mov ecx, 0x140
mov word [esi + 6], cx
push eax
mov edx, esi
mov ecx, ebx
call fcn.004883e3
xor edx, edx
pop ecx
cmp dword [esi + 0xc], edx
jne 0x48ba2e
mov edx, dword [esp + 0x90]
test edx, edx
js 0x48ba2c
mov ecx, edi
call fcn.00461566
mov byte [eax], 0x6d
or byte [esp + 0x98], 1
xor edx, edx
test byte [esi + 8], 1
je 0x48baa0
mov eax, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0xf4], eax
inc eax
push edx
mov dword [ebx + 0x28], eax
push edx
mov edx, dword [esi]
call fcn.00487746
mov ecx, dword [esp + 0x38]
mov edi, eax
xor eax, eax
push eax
push eax
push dword [esp + 0x104]
push 0x6c
pop edx
call fcn.00460e33
add esp, 0x14
mov esi, eax
mov edx, esi
push 0xfffffffffffffffb
push edi
mov edi, dword [esp + 0x38]
mov ecx, edi
call fcn.004614a3
pop ecx
pop ecx
push 8
pop eax
mov edx, eax
mov dword [esp + 0xf8], esi
mov ecx, edi
call fcn.004612b5
mov esi, dword [esp + 0x58]
xor edx, edx
mov byte [esp + 0xf1], 3
jmp 0x48baa7
mov byte [esp + 0xf1], dl
cmp dword [esp + 0x14], 0
mov ecx, dword [esp + 0x10]
jne 0x48bbc4
test ecx, ecx
jne 0x48bbc4
cmp byte [esp + 0xf0], cl
mov eax, 0x100
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [esi + 8]
and ax, dx
mov edx, dword [esp + 0x1c]
or cx, ax
movsx eax, word [esi + 6]
push eax
movzx ecx, cx
push ecx
push dword [esi]
mov ecx, ebx
push dword [esp + 0x88]
push dword [esp + 0x64]
call fcn.00498696
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x48c881
movzx ecx, word [eax + 0x48]
cmp cx, word [esi + 6]
jge 0x48bb1a
mov word [esi + 6], cx
cmp byte [esp + 0xf0], 0
je 0x48bb42
mov cl, byte [eax + 0x2f]
movzx edx, byte [esp + 0xf1]
test cl, cl
movzx eax, cl
cmovne edx, eax
mov eax, dword [esp + 0x38]
mov byte [esp + 0xf1], dl
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x48bb6a
movsx ecx, byte [eax + 0x2b]
mov dword [esp + 0x80], ecx
mov al, byte [eax + 0x30]
mov byte [esp + 0x99], al
xor eax, eax
cmp ecx, dword [edx]
cmove edx, eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x90], 0
jl 0x48bb86
test edx, edx
jne 0x48bb86
mov edx, dword [esp + 0x90]
mov ecx, edi
call fcn.00461405
mov eax, dword [esp + 0x38]
mov edx, esi
mov ecx, ebx
push dword [eax + 0x20]
push dword [eax + 0x1c]
lea eax, [esp + 0xf8]
push dword [esp + 0x48]
push eax
lea eax, [esp + 0x8c]
push eax
push 0xffffffffffffffff
push dword [esp + 0x5c]
call fcn.0048702a
mov ecx, dword [esp + 0x54]
add esp, 0x1c
call fcn.00498f2d
jmp 0x48c811
mov dword [esp + 0x38], edx
mov dword [esp + 0x2c], edx
test ecx, ecx
je 0x48bc17
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jle 0x48bbef
add edx, 0x16
xor edi, edi
dec eax
mov word [edx], di
lea edx, [edx + 0x18]
test eax, eax
jg 0x48bbde
mov edi, dword [esp + 0x30]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
test eax, eax
jle 0x48bc0c
add edx, 0x16
xor ebx, ebx
dec eax
mov word [edx], bx
lea edx, [edx + 0x18]
test eax, eax
jg 0x48bbfb
mov ebx, dword [esp + 0x34]
push 0x42
pop eax
cmp word [esi + 6], ax
jle 0x48bc1d
jmp 0x48bc19
xor eax, eax
mov word [esi + 6], ax
mov edx, dword [esp + 0x7c]
push 0xffffffffffffffff
call fcn.004741a9
pop ecx
mov ecx, edi
mov dword [esp + 0x24], eax
call fcn.00461058
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x3c], eax
xorps xmm0, xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xa8], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0xa4], edx
movlpd qword [esp + 0xac], xmm0
movlpd qword [esp + 0xb4], xmm0
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xcc], eax
test ecx, ecx
je 0x48bc94
mov eax, dword [ecx]
mov dword [esp + 0xc8], eax
jmp 0x48bc9b
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0x9c]
call fcn.00474589
mov edx, dword [esp + 0x7c]
lea ecx, [esp + 0x9c]
call fcn.00474589
mov eax, dword [esp + 0xec]
test eax, eax
je 0x48bcdb
mov edx, eax
lea ecx, [esp + 0x9c]
call fcn.00474540
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0xe8]
mov dword [esp + 0xe0], eax
xor eax, eax
test edx, edx
jle 0x48bd5c
mov esi, eax
mov ax, word [esp + 0xb8]
push 8
mov edi, esi
pop ebx
or ax, bx
lea ecx, [esp + 0x9c]
mov word [esp + 0xb8], ax
mov eax, dword [esp + 0xe4]
mov edx, dword [eax + esi]
mov edx, dword [edx + 0x14]
call fcn.00474589
mov ax, word [esp + 0xb8]
lea esi, [esi + 0x10]
mov edx, dword [esp + 0xe8]
mov ecx, 0xfff7
and ax, cx
inc edi
mov word [esp + 0xb8], ax
cmp edi, edx
jl 0x48bd05
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x45], 0
jne 0x48c881
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x48c392
mov eax, dword [ebx + 0x28]
mov edx, ecx
push dword [esp + 0xdc]
mov dword [esp + 0xc4], eax
mov ecx, ebx
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
push eax
call fcn.00487746
push 0xfffffffffffffffb
push eax
mov dword [esp + 0x80], eax
mov ecx, edi
xor eax, eax
push eax
push dword [esp + 0xdc]
push dword [esp + 0xd8]
push 0x6d
pop edx
call fcn.00460f47
mov dword [esp + 0x68], eax
add esp, 0x1c
mov eax, dword [ebx + 0x2c]
mov ecx, edi
inc eax
mov dword [esp + 0x68], eax
inc eax
mov dword [esp + 0x14], eax
inc eax
mov dword [ebx + 0x2c], eax
call fcn.00461058
mov dword [esp + 0x64], eax
mov ecx, edi
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x28], eax
mov dword [ebx + 0x2c], eax
call fcn.00461058
mov ecx, dword [ebx + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x48], eax
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x5c], eax
mov dword [ebx + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x60], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
mov dword [ebx + 0x2c], eax
xor eax, eax
push eax
push dword [esp + 0x18]
push eax
push 0x4d
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x6c]
push eax
push 0x4d
pop edx
call fcn.00460e33
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ecx]
mov ecx, dword [esp + 0x5c]
dec eax
add eax, ecx
push eax
push ecx
xor eax, eax
mov ecx, edi
push eax
push 0x50
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x4c]
push dword [esp + 0x30]
push 0xe
pop edx
call fcn.00460e33
add esp, 0xc
xor edx, edx
cmp dword [esp + 0x24], edx
mov ecx, 0x240
push edx
push 0x40
pop eax
cmove eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push edx
push dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push dword [esp + 0x64]
call fcn.00498696
mov edx, eax
add esp, 0x14
mov dword [esp + 0x54], edx
test edx, edx
je 0x48c881
mov ecx, dword [esp + 0x10]
movsx eax, byte [edx + 0x2b]
cmp eax, dword [ecx]
jne 0x48bed5
xor ecx, ecx
mov esi, ecx
mov dword [esp + 0x50], esi
jmp 0x48c097
cmp byte [esp + 0xf0], 0
je 0x48beea
test byte [esi + 8], 1
mov edx, str.DISTINCT
je 0x48beef
mov edx, str.GROUP_BY
mov ecx, ebx
call fcn.004877f7
cmp dword [esp + 0xdc], 0
mov esi, dword [esp + 0x10]
mov dword [esp + 0x50], 1
mov eax, dword [esi]
mov edx, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], eax
jle 0x48bf59
mov ebx, dword [esp + 0xd8]
mov edi, eax
mov esi, dword [esp + 0xdc]
add ebx, 0xc
cmp dword [ebx], edi
lea eax, [edx + 1]
lea ebx, [ebx + 0x18]
cmovl eax, edx
mov edx, eax
lea eax, [edi + 1]
cmovl eax, edi
mov edi, eax
sub esi, 1
jne 0x48bf2f
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], edx
mov ecx, ebx
call fcn.0047461f
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.004727f3
xor eax, eax
mov edx, esi
push eax
push eax
push dword [esp + 0x3c]
mov ecx, ebx
call fcn.00473727
mov ecx, dword [esp + 0xe8]
xor edx, edx
add esp, 0xc
mov eax, edx
mov dword [esp + 0x2c], eax
test ecx, ecx
jle 0x48bfdd
mov edi, dword [esp + 0x6c]
mov esi, edx
mov edx, dword [esp + 0xd8]
cmp dword [edx + esi + 0xc], edi
jl 0x48bfcd
mov eax, dword [esp + 0x34]
mov ecx, ebx
add eax, edi
push eax
push dword [edx + esi + 4]
push dword [edx + esi + 8]
mov edx, dword [edx + esi]
call fcn.004727be
mov ecx, dword [esp + 0xe8]
add esp, 0xc
mov eax, dword [esp + 0x2c]
inc edi
inc eax
add esi, 0x18
mov dword [esp + 0x2c], eax
cmp eax, ecx
jl 0x48bf98
mov edi, dword [esp + 0x30]
mov ecx, ebx
call fcn.004745bd
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x64
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push esi
push dword [esp + 0xc8]
push 0x7d
pop edx
call fcn.00460e33
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.004745dc
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push esi
call fcn.00474655
pop ecx
mov ecx, dword [esp + 0x54]
call fcn.00498f2d
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0xc4], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.004745bd
push esi
push eax
push edx
push 0x6f
pop edx
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x40]
push dword [esp + 0xc8]
push 0x38
pop edx
call fcn.00460e33
add esp, 0xc
mov byte [esp + 0xbd], 1
mov ecx, ebx
call fcn.004727f3
mov edx, dword [esp + 0x54]
xor esi, esi
inc esi
xor ecx, ecx
cmp dword [esp + 0x24], 0
jne 0x48c0c4
mov eax, dword [esp + 0x20]
test byte [eax + 0x40], 4
jne 0x48c0c4
test esi, esi
jne 0x48c0b2
cmp byte [edx + 0x2c], 0
je 0x48c0c4
mov edx, dword [esp + 0x90]
mov dword [esp + 0x7c], ecx
mov ecx, edi
call fcn.00461405
mov eax, dword [edi + 0x88]
mov ecx, ebx
mov dword [esp + 0x6c], eax
call fcn.004727f3
test esi, esi
je 0x48c0f5
push dword [esp + 0x38]
mov ecx, edi
push dword [esp + 0x30]
push dword [esp + 0xc8]
push 0x79
pop edx
call fcn.00460e33
add esp, 0xc
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x24], ecx
cmp dword [esi], ecx
jle 0x48c159
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x60]
add edx, eax
cmp dword [esp + 0x50], 0
push edx
je 0x48c12b
push eax
push dword [esp + 0x40]
mov ecx, edi
push 0x62
pop edx
call fcn.00460e33
add esp, 0xc
jmp 0x48c141
mov byte [esp + 0xc0], 1
mov edx, dword [esi + 4]
mov edx, dword [edx + ecx]
mov ecx, ebx
call fcn.0047364d
pop ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
inc eax
add ecx, 0x18
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
cmp eax, dword [esi]
jl 0x48c109
mov eax, dword [esp + 0x70]
test eax, eax
je 0x48c163
inc dword [eax]
push 0xfffffffffffffffb
push eax
push dword [esi]
mov ecx, edi
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push 0x60
pop edx
call fcn.00460f47
mov esi, dword [edi + 0x88]
add esp, 0x14
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x12
pop edx
call fcn.00460e33
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x60]
mov ecx, ebx
push dword [eax]
push dword [esp + 0x60]
call fcn.00472834
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x70]
mov eax, dword [esp + 0x24]
inc eax
push eax
push 0xe
pop edx
call fcn.00460e33
add esp, 0x14
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x40]
push dword [esp + 0x1c]
push 0x43
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x4c]
push dword [esp + 0x30]
push 0xe
pop edx
call fcn.00460e33
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00461566
mov ecx, dword [edi + 0x88]
lea edx, [esp + 0xbc]
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.0048b124
xor esi, esi
mov ecx, edi
push esi
push dword [esp + 0x6c]
push 1
push 0x4d
pop edx
call fcn.00460e33
add esp, 0xc
cmp dword [esp + 0x50], esi
je 0x48c24d
push esi
push dword [esp + 0x70]
mov ecx, edi
push dword [esp + 0xc8]
push 3
pop edx
call fcn.00460e33
add esp, 0xc
jmp 0x48c261
mov ecx, dword [esp + 0x54]
call fcn.00498f2d
mov edx, dword [esp + 0x4c]
mov ecx, edi
call fcn.00461405
push esi
mov esi, dword [esp + 0x18]
mov ecx, edi
push dword [esp + 0x68]
lea eax, [esi + 1]
push eax
push 0xe
pop edx
call fcn.00460e33
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, edi
call fcn.00460e95
mov edi, dword [edi + 0x88]
xor eax, eax
push eax
push esi
mov esi, dword [esp + 0x38]
mov ecx, esi
push 1
push 0x4d
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, esi
push eax
push eax
mov eax, dword [esp + 0x1c]
inc eax
push eax
push 0x49
pop edx
call fcn.00460e33
mov edx, dword [esp + 0x70]
add esp, 0xc
mov ecx, esi
call fcn.0046109a
mov esi, dword [esi + 0x88]
xor eax, eax
push eax
lea eax, [esi + 2]
push eax
push dword [esp + 0x70]
push 0x43
pop edx
call fcn.00460e33
mov ecx, dword [esp + 0x3c]
add esp, 0xc
xor eax, eax
push eax
push eax
mov eax, dword [esp + 0x1c]
inc eax
push eax
push 0x49
pop edx
call fcn.00460e33
add esp, 0xc
lea edx, [esp + 0xbc]
mov ecx, ebx
call fcn.0048b0ca
mov eax, dword [esp + 0xec]
inc esi
push 0x10
push esi
push eax
push ebx
call fcn.00473c8b
push edi
push esi
push dword [esp + 0x58]
mov esi, dword [esp + 0x74]
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x9c]
mov edx, esi
push eax
push 0xffffffffffffffff
push dword [esi]
mov ecx, ebx
call fcn.0048702a
mov edi, dword [esp + 0x5c]
add esp, 0x2c
xor eax, eax
mov ecx, edi
push eax
push eax
mov eax, dword [esp + 0x1c]
inc eax
push eax
push 0x49
pop edx
call fcn.00460e33
mov edx, dword [esp + 0x54]
add esp, 0xc
mov ecx, edi
call fcn.0046109a
lea edx, [esp + 0xbc]
mov ecx, ebx
call fcn.0048b01b
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esp + 0x30]
push 0x49
pop edx
call fcn.00460e33
add esp, 0xc
jmp 0x48c806
xor eax, eax
mov dword [esp + 0x10], eax
cmp dword [esi + 0x20], eax
jne 0x48c56a
mov ecx, dword [esi]
inc eax
cmp dword [ecx], eax
jne 0x48c56a
mov ecx, dword [esi + 0x1c]
cmp dword [ecx], eax
jne 0x48c56a
xor eax, eax
cmp dword [ecx + 0x1c], eax
jne 0x48c56a
mov eax, dword [esi]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 4]
cmp dword [ecx + 0x38], 0
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jne 0x48c56a
cmp byte [eax], 0x99
jne 0x48c56a
test edx, edx
je 0x48c56a
mov eax, dword [esp + 0xe4]
mov edx, 0x100
mov eax, dword [eax + 4]
test word [eax + 2], dx
je 0x48c56a
mov eax, dword [esp + 0x4c]
test byte [eax + 4], 0x10
jne 0x48c56a
test ecx, ecx
je 0x48c56a
mov edx, dword [ecx + 0x48]
mov ecx, dword [ebx]
call fcn.00485f85
mov ecx, eax
xor edx, edx
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
inc eax
mov dword [ebx + 0x28], eax
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 0x1c]
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.0047ad7a
mov eax, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x24]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.00476b90
mov edx, dword [esp + 0x20]
add esp, 0xc
test byte [edx + 0x24], 0x20
je 0x48c489
mov ecx, edx
call fcn.004776c9
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x48c48d
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 8]
test eax, eax
je 0x48c4d7
lea esi, [edx + 0x2e]
mov dword [esp + 0x14], edx
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
test byte [eax + 0x38], 4
jne 0x48c4c8
movzx edx, word [eax + 0x30]
cmp dx, word [edi]
jge 0x48c4c8
cmp dword [eax + 0x24], 0
jne 0x48c4c8
test ecx, ecx
je 0x48c4c6
cmp dx, word [ecx + 0x30]
jge 0x48c4c8
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x48c4a7
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x48c4ef
mov eax, dword [ecx + 0x2c]
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x2c], eax
call fcn.0047b211
mov dword [esp + 0x48], eax
push 1
push dword [esp + 0x28]
mov ecx, edi
push dword [esp + 0x34]
push dword [esp + 0x34]
push 0x69
pop edx
call fcn.00461001
mov eax, dword [esp + 0x58]
add esp, 0x10
test eax, eax
je 0x48c521
push 0xfffffffffffffffb
push eax
or edx, 0xffffffff
mov ecx, edi
call fcn.004614a3
pop ecx
pop ecx
xor eax, eax
mov ecx, edi
push eax
mov eax, dword [esp + 0xe8]
push dword [eax + 8]
push dword [esp + 0x30]
push 0x65
pop edx
call fcn.00460e33
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esp + 0x30]
push 0x70
pop edx
call fcn.00460e33
mov eax, dword [esp + 0x40]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, ebx
push eax
call fcn.0048b33b
pop ecx
jmp 0x48c7b8
xor edx, edx
mov eax, edx
mov byte [esp + 0x1b], dl
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], eax
cmp dword [esi + 0x28], edx
jne 0x48c729
lea edx, [esp + 0x14]
lea ecx, [esp + 0xbc]
call fcn.0048a2e5
mov cl, al
mov byte [esp + 0x1b], cl
test cl, cl
je 0x48c721
xor edx, edx
mov dword [esp + 0x24], edx
cmp dword [esp + 0x14], edx
jne 0x48c5b6
mov dword [esp + 0x10], edx
jmp 0x48c6f9
mov ecx, dword [esp + 0x20]
push edx
push 8
pop eax
push eax
call fcn.0044a313
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x48c5dd
xor eax, eax
mov edx, eax
mov dword [esp + 0x10], edx
jmp 0x48c6f5
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [ecx], eax
xor eax, eax
mov edx, dword [edx]
inc eax
mov ecx, eax
cmp edx, eax
jle 0x48c5f6
add ecx, ecx
cmp ecx, edx
jl 0x48c5f0
imul eax, ecx, 0x18
mov ecx, dword [esp + 0x20]
push 0
push eax
call fcn.0044a313
mov edx, dword [esp + 0x18]
pop ecx
pop ecx
mov ecx, eax
mov dword [edx + 4], ecx
test ecx, ecx
jne 0x48c61f
mov ecx, dword [esp + 0x20]
call fcn.0044a0d4
jmp 0x48c5d0
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jle 0x48c6f5
mov esi, dword [esp + 0x4c]
lea ebx, [ecx + 0x10]
mov edi, dword [esp + 0x20]
sub ecx, esi
mov dword [esp + 0x4c], ecx
mov eax, dword [esi]
xor ecx, ecx
push ecx
mov edx, eax
mov dword [esp + 0x74], eax
mov ecx, edi
call fcn.00470949
pop ecx
mov ecx, dword [esp + 0x4c]
mov dword [esi + ecx], eax
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x48c691
cmp byte [ecx], 0x9f
jne 0x48c691
test eax, eax
je 0x48c691
xor ecx, ecx
cmp word [eax + 0x20], cx
jne 0x48c68a
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
jmp 0x48c68e
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], ecx
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.0044a476
mov dword [ebx - 0xc], eax
mov ecx, edi
mov edx, dword [esi + 8]
call fcn.0044a476
mov ecx, dword [ebx]
mov dword [ebx - 8], eax
and ecx, 0xfffffffe
mov al, byte [esi + 0xc]
mov byte [ebx - 4], al
mov dword [ebx], ecx
mov eax, dword [esi + 0x10]
xor eax, ecx
and eax, 2
xor eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx], eax
inc ecx
mov eax, dword [esi + 0x14]
add esi, 0x18
mov dword [ebx + 4], eax
add ebx, 0x18
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
cmp ecx, dword [eax]
jl 0x48c64e
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov cl, byte [esp + 0x1b]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], edx
cmp byte [eax + 0x45], 0
jne 0x48c729
mov eax, dword [edx + 4]
cmp cl, 1
mov dword [esp + 0x10], edx
setne cl
mov byte [eax + 0xc], cl
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov byte [eax], 0x98
jmp 0x48c729
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
lea edx, [esp + 0xbc]
mov ecx, ebx
call fcn.0048b01b
movzx eax, byte [esp + 0x1b]
xor ecx, ecx
mov edx, dword [esp + 0x1c]
push ecx
push eax
push ecx
push dword [esp + 0x34]
mov ecx, ebx
push dword [esp + 0x64]
call fcn.00498696
add esp, 0x14
mov dword [esp + 0x24], eax
test eax, eax
jne 0x48c77d
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x48c885
mov edx, eax
mov ecx, edi
call fcn.00470fe7
jmp 0x48c885
lea edx, [esp + 0xbc]
mov ecx, ebx
call fcn.0048b124
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x2b], 0
jle 0x48c7a3
mov edx, dword [eax + 0x20]
mov ecx, edi
call fcn.00460e95
mov eax, dword [esp + 0x24]
mov ecx, eax
call fcn.00498f2d
lea edx, [esp + 0xbc]
mov ecx, ebx
call fcn.0048b0ca
push 0x10
push dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0xf4]
push eax
push ebx
call fcn.00473c8b
mov eax, dword [esp + 0x4c]
mov edx, esi
push eax
push eax
push dword [esp + 0x58]
xor eax, eax
mov ecx, ebx
push eax
push eax
push 0xffffffffffffffff
push dword [esi]
call fcn.0048702a
mov eax, dword [esp + 0x3c]
add esp, 0x2c
test eax, eax
je 0x48c806
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.00470fe7
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.0046109a
cmp byte [esp + 0xf1], 3
jne 0x48c827
mov edx, str.DISTINCT
mov ecx, ebx
call fcn.004877f7
cmp dword [esp + 0x7c], 0
je 0x48c868
cmp dword [esp + 0x80], 0
mov eax, str.ORDER_BY
mov edx, str.RIGHT_PART_OF_ORDER_BY
mov ecx, ebx
cmovle edx, eax
call fcn.004877f7
mov eax, dword [esp + 0x44]
mov edx, esi
push dword [esp + 0x40]
mov ecx, ebx
push dword [eax]
lea eax, [esp + 0x84]
push eax
call fcn.004878b3
add esp, 0xc
mov edx, dword [esp + 0x78]
mov ecx, edi
call fcn.0046109a
xor eax, eax
xor ecx, ecx
cmp dword [ebx + 0x24], ecx
setg al
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x50], 0
mov ecx, dword [esp + 0x74]
mov dword [ebx + 0x1a0], ecx
jne 0x48c8b1
mov ecx, dword [esp + 0x40]
cmp byte [ecx], 9
jne 0x48c8b1
push dword [esp + 0x44]
mov edx, eax
mov ecx, ebx
call fcn.00487dc2
pop ecx
mov edx, dword [esp + 0xd8]
mov ecx, edi
call fcn.0044a0d4
mov edx, dword [esp + 0xe4]
mov ecx, edi
call fcn.0044a0d4
mov eax, dword [esp + 0x50]
jmp 0x48c8d6
xor eax, eax
inc eax
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c233c
mov esp, ebp
pop ebp
ret