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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x164
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
mov esi, edi
mov dword [edi + 0x2c], ebx
call fcn.004300f0
test al, al
je 0x4327cc
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx + 0x14]
cmp eax, ebx
je 0x43128d
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0x18]
push esi
push ecx
call eax
add esp, 8
cmp eax, ebx
je 0x4327ce
cmp esi, ebx
mov dword [eax + 0x30], esi
je 0x43126f
add dword [esi], 1
mov dword [eax + 0x20], edi
mov dword [eax + 0x34], ebx
mov ecx, dword [edi + 0xc]
cmp ecx, ebx
je 0x4327ce
add ecx, 1
mov dword [edi + 0xc], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ecx + 0x24], ebx
je 0x4327cc
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
mov dword [esp + 0x10], ecx
je 0x431361
add dword [ecx], 1
jmp 0x4312b0
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x431361
mov edx, dword [ecx + 0xc]
cmp edx, ebx
jbe 0x431361
mov eax, dword [ecx + 4]
add eax, edx
cmp byte [eax], 0x3b
jne 0x431361
push ecx
mov eax, edx
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
sub eax, 1
cmp ecx, ebx
je 0x4312ea
add dword [ecx], 1
lea edx, [esp + 0x58]
push edx
call fcn.004ac2c0
add esp, 8
cmp byte [0x5f49d5], bl
mov edi, eax
jne 0x431313
push 0x5f3a18
call dword [sym.imp.KERNEL32.DLL_InitializeCriticalSection]
mov byte [0x5f49d5], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
lea eax, [esp + 0x10]
cmp eax, edi
je 0x431340
mov esi, dword [esp + 0x10]
cmp esi, ebx
je 0x431333
call fcn.004ab850
mov eax, dword [edi]
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x431340
add dword [eax], 1
push 0x5f3a18
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
mov esi, dword [esp + 0x54]
cmp esi, ebx
je 0x4312b0
call fcn.004ab850
jmp 0x4312b0
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x28]
push edx
call fcn.0042eaf0
add esp, 8
mov ecx, str.select
lea eax, [esp + 0x24]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x34], ebx
mov byte [esp + 0x23], bl
mov byte [esp + 0x33], bl
call fcn.0041d810
test al, al
je 0x4313cb
mov eax, dword [ebp + 8]
push str.Expected_SELECT
push 0xc8
push eax
call fcn.0042dfe0
add esp, 0xc
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x4313c0
call fcn.004ab850
mov esi, dword [esp + 0x10]
cmp esi, ebx
jmp 0x4327c5
mov dword [esp + 0x40], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], ebx
nop
xor edi, edi
mov esi, 0x57e81c
lea eax, [esp + 0x44]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x44], ebx
call fcn.004ab970
mov esi, dword [esp + 0x44]
cmp esi, ebx
je 0x431407
mov dword [esi + 0x10], 0x600
lea ebx, [esp + 0x44]
lea edi, [esp + 0x18]
call fcn.004abdf0
test esi, esi
je 0x43141d
call fcn.004ab850
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x70]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0x14]
call fcn.004abdf0
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x431447
call fcn.004ab850
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4315b6
mov eax, dword [esi + 4]
add eax, 1
test eax, eax
je 0x43146f
push 0x57f69c
push eax
call fcn.00567846
add esp, 8
test eax, eax
je 0x43148b
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x43147b
add dword [esi], 1
call fcn.0042f1a0
add esp, 4
test al, al
je 0x43194c
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4314b7
mov esi, eax
call fcn.004ab850
mov esi, dword [esp + 0xc]
test esi, esi
mov ebx, 1
je 0x4315c0
mov eax, dword [esi + 4]
add eax, ebx
test eax, eax
je 0x4315d4
push 0x57e72c
push eax
call fcn.00567846
add esp, 8
test eax, eax
jne 0x4315d4
lea ebx, [esp + 0x14]
lea edi, [esp + 0x18]
call fcn.004abdf0
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x6c]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0x14]
call fcn.004abdf0
mov eax, dword [esp + 0x68]
xor ebx, ebx
cmp eax, ebx
je 0x43152a
mov esi, eax
call fcn.004ab850
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
cmp edi, ebx
je 0x4315ca
mov eax, dword [edi + 4]
add eax, 1
cmp eax, ebx
je 0x43155a
push 0x57f69c
push eax
call fcn.00567846
add esp, 8
cmp eax, ebx
je 0x431861
mov edi, dword [esp + 0x14]
cmp edi, ebx
push ecx
mov eax, esp
mov dword [eax], edi
je 0x431566
add dword [edi], 1
call fcn.0042f1a0
add esp, 4
cmp al, bl
jne 0x431861
mov eax, dword [ebp + 8]
push str.Invalid_column_name
push 0xc9
push eax
call fcn.0042dfe0
add esp, 0xc
cmp esi, ebx
je 0x431595
call fcn.004ab850
cmp edi, ebx
je 0x4315a0
mov esi, edi
call fcn.004ab850
mov esi, dword [esp + 0x18]
cmp esi, ebx
je 0x4313b3
call fcn.004ab850
jmp 0x4313b3
mov eax, 0x57e81c
jmp 0x43145d
mov eax, 0x57e81c
jmp 0x4314d5
mov eax, 0x57e81c
jmp 0x431540
test esi, esi
je 0x43168d
mov eax, dword [esi + 4]
add eax, ebx
test eax, eax
je 0x4317f7
push 0x581cd8
push eax
call fcn.00567846
add esp, 8
test eax, eax
jne 0x4317f7
mov ecx, str.count
lea eax, [esp + 0x14]
call fcn.00401f50
test al, al
je 0x431697
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x5c]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x431641
mov esi, eax
call fcn.004ab850
mov ecx, 0x57f69c
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
jne 0x431986
mov eax, 0x57f69c
lea ebx, [esp + 0x4c]
call fcn.00401ed0
lea edi, [esp + 0x14]
call fcn.004abdf0
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x43167b
call fcn.004ab850
mov eax, 1
mov byte [esp + 0x23], al
mov dword [esp + 0x28], eax
jmp 0x43179b
mov eax, 0x57e81c
jmp 0x4315e9
mov ecx, 0x581e9c
lea eax, [esp + 0x14]
call fcn.00401f50
test al, al
lea eax, [esp + 0x14]
je 0x4316d9
push eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00431020
add esp, 0x10
test al, al
je 0x43278f
mov dword [esp + 0x28], 4
jmp 0x431797
mov ecx, 0x581ea0
call fcn.00401f50
test al, al
je 0x431717
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.00431020
add esp, 0x10
test al, al
je 0x43278f
mov dword [esp + 0x28], 5
jmp 0x431797
mov ecx, 0x581ea4
lea eax, [esp + 0x14]
call fcn.00401f50
test al, al
je 0x431756
lea edx, [esp + 0x14]
push edx
mov edx, dword [ebp + 8]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.00431020
add esp, 0x10
test al, al
je 0x43278f
mov dword [esp + 0x28], 3
jmp 0x431797
mov ecx, 0x581ea8
lea eax, [esp + 0x14]
call fcn.00401f50
test al, al
je 0x4319bf
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00431020
add esp, 0x10
test al, al
je 0x43278f
mov dword [esp + 0x28], 2
mov byte [esp + 0x23], bl
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x64]
test esi, esi
je 0x4317c5
call fcn.004ab850
mov ecx, 0x581cfc
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
je 0x43185f
mov edx, dword [ebp + 8]
push str.Expected__
push 0xc8
push edx
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
jmp 0x43278c
mov eax, 0x580ddc
lea ebx, [esp + 0x48]
call fcn.00401ed0
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.004ac650
add esp, 0xc
push eax
lea ecx, [esp + 0x64]
push ecx
call fcn.004ac650
add esp, 0xc
mov ebx, eax
lea edi, [esp + 0x10]
call fcn.004abdf0
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x431845
call fcn.004ab850
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x431852
call fcn.004ab850
mov esi, dword [esp + 0x48]
test esi, esi
je 0x43185f
call fcn.004ab850
xor ebx, ebx
push 0x20
call fcn.005662c8
add esp, 4
cmp eax, ebx
je 0x431882
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x1c], bl
mov dword [eax + 0x18], ebx
mov esi, eax
jmp 0x431884
xor esi, esi
mov edx, dword [esp + 0x28]
lea edi, [esi + 8]
lea ebx, [esp + 0x18]
mov dword [esi + 0x18], edx
call fcn.004abdf0
lea edi, [esi + 4]
lea ebx, [esp + 0x14]
call fcn.004abdf0
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esi], 0
je 0x4318b5
mov dword [eax], esi
jmp 0x4318b9
mov dword [esp + 0x38], esi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x48], esi
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4318e7
call fcn.004ab850
mov esi, dword [esp + 0xc]
test esi, esi
je 0x43193e
mov eax, dword [esi + 4]
add eax, 1
test eax, eax
je 0x43190f
push str.from
push eax
call fcn.00567846
add esp, 8
test eax, eax
je 0x4319e0
test esi, esi
je 0x431945
mov eax, dword [esi + 4]
add eax, 1
test eax, eax
je 0x432779
push 0x581cec
push eax
call fcn.00567846
add esp, 8
test eax, eax
jne 0x432779
xor ebx, ebx
jmp 0x4313e0
mov eax, 0x57e81c
jmp 0x4318f9
mov eax, 0x57e81c
jmp 0x431921
mov edx, dword [ebp + 8]
push str.Invalid_column_table_name
push 0xc9
push edx
call fcn.0042dfe0
mov eax, dword [esp + 0x18]
add esp, 0xc
test eax, eax
je 0x431975
mov esi, eax
call fcn.004ab850
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4327a5
mov esi, dword [esp + 0x14]
jmp 0x4327a0
mov ecx, dword [ebp + 8]
push str.Only_COUNT___supported
push 0xc9
push ecx
call fcn.0042dfe0
mov eax, dword [esp + 0x18]
add esp, 0xc
test eax, eax
je 0x4319ab
mov esi, eax
call fcn.004ab850
cmp dword [esp + 0x14], 0
je 0x4327a5
mov esi, dword [esp + 0x14]
jmp 0x4327a0
push str.Unsupported_SELECT_function
mov eax, dword [ebp + 8]
push 0xc9
push eax
call fcn.0042dfe0
add esp, 0xc
test esi, esi
je 0x4319ab
jmp 0x4319a6
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0x18]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
xor edi, edi
cmp esi, edi
je 0x431a0c
call fcn.004ab850
push 0x14
call fcn.005662c8
add esp, 4
cmp eax, edi
je 0x431a2e
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov esi, eax
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [esp + 0x44], esi
jmp 0x431a34
mov dword [esp + 0x44], edi
mov esi, edi
lea edi, [esi + 4]
lea ebx, [esp + 0x18]
call fcn.004abdf0
lea edi, [esi + 8]
call fcn.004abdf0
mov eax, dword [esp + 0x2c]
test eax, eax
mov dword [esi], 0
je 0x431a5a
mov dword [eax], esi
jmp 0x431a5e
mov dword [esp + 0x54], esi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x34], esi
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x431a92
mov esi, eax
call fcn.004ab850
mov esi, dword [esp + 0x44]
mov ecx, str.where
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, str.order
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, str.group
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, 0x57e81c
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, 0x581cec
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
je 0x4319e0
mov edi, dword [esp + 0xc]
test edi, edi
push ecx
mov eax, esp
mov dword [eax], edi
je 0x431b10
add dword [edi], 1
call fcn.0042f1a0
add esp, 4
test al, al
je 0x431be3
lea edi, [esi + 4]
lea ebx, [esp + 0xc]
call fcn.004abdf0
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431b56
call fcn.004ab850
mov ecx, str.where
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, str.order
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, str.group
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, 0x57e81c
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431c08
mov ecx, 0x581cec
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
je 0x431bdf
mov ecx, dword [ebp + 8]
push 0x581ed0
push 0xc8
push ecx
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
add esp, 0xc
test esi, esi
je 0x4319ab
jmp 0x4319a6
mov edi, dword [esp + 0xc]
mov edx, dword [ebp + 8]
push str.Invalid_table_name
push 0xc9
push edx
call fcn.0042dfe0
add esp, 0xc
test edi, edi
je 0x4319ab
mov esi, edi
jmp 0x4319a6
mov ecx, str.where
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x431c6f
mov edx, dword [ebp + 8]
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.0042fe00
add esp, 0xc
test al, al
jne 0x431c45
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4319ab
jmp 0x4319a6
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431c6f
call fcn.004ab850
mov ecx, str.order
lea eax, [esp + 0xc]
mov dword [esp + 0x28], 0
call fcn.00401f50
test al, al
je 0x432243
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431cb7
call fcn.004ab850
mov ecx, 0x581f0c
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
je 0x431cf0
mov ecx, dword [ebp + 8]
push str.Expecting_BY
push 0xc8
push ecx
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
add esp, 0xc
test esi, esi
je 0x4319ab
jmp 0x4319a6
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431d1a
call fcn.004ab850
mov esi, dword [esp + 0xc]
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x431d2a
add dword [esi], 1
call fcn.0042f290
add esp, 4
test al, al
je 0x431d5d
test esi, esi
je 0x431d42
mov edx, dword [esi + 4]
add edx, 1
jmp 0x431d47
mov edx, 0x57e81c
call fcn.0052fd10
sub eax, 1
mov dword [esp + 0x70], eax
mov byte [esp + 0x74], 0
jmp 0x431ede
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x431d69
add dword [esi], 1
call fcn.0042f1a0
add esp, 4
test al, al
je 0x43228b
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
mov eax, 0x57e81c
lea ebx, [esp + 0x2c]
call fcn.00401ed0
lea edi, [esp + 0x18]
call fcn.004abdf0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x431daa
call fcn.004ab850
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431dd4
call fcn.004ab850
mov ecx, 0x57e72c
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x431e04
lea ebx, [esp + 0x14]
lea edi, [esp + 0x18]
call fcn.004abdf0
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
xor ebx, ebx
jmp 0x431e6e
mov eax, 0x580ddc
lea ebx, [esp + 0x2c]
call fcn.00401ed0
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.004ac650
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004ac650
add esp, 0xc
mov ebx, eax
lea edi, [esp + 0x10]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
je 0x431e54
call fcn.004ab850
mov esi, dword [esp + 0x3c]
cmp esi, ebx
je 0x431e61
call fcn.004ab850
mov esi, dword [esp + 0x2c]
cmp esi, ebx
je 0x431e6e
call fcn.004ab850
push 0x20
mov dword [esp + 0x74], 0xffffffff
mov byte [esp + 0x78], bl
call fcn.005662c8
add esp, 4
cmp eax, ebx
je 0x431e9b
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x1c], bl
mov dword [eax + 0x18], ebx
mov esi, eax
jmp 0x431e9d
xor esi, esi
lea edi, [esi + 8]
lea ebx, [esp + 0x18]
call fcn.004abdf0
lea edi, [esi + 4]
lea ebx, [esp + 0x14]
call fcn.004abdf0
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esi], 0
mov dword [esi + 0x18], 0
je 0x431ece
mov dword [eax], esi
jmp 0x431ed2
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x34], 1
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431f08
call fcn.004ab850
mov ecx, 0x581f38
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x431f26
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
jmp 0x431f47
mov ecx, str.desc
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x431f67
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 1
push ecx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431f67
call fcn.004ab850
mov ecx, 0x581cec
lea eax, [esp + 0xc]
mov dword [esp + 0x28], 1
call fcn.00401f50
test al, al
je 0x432243
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x431faf
call fcn.004ab850
mov esi, dword [esp + 0xc]
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x431fbf
add dword [esi], 1
call fcn.0042f290
add esp, 4
test al, al
je 0x431ffe
test esi, esi
je 0x431fd7
mov edx, dword [esi + 4]
add edx, 1
jmp 0x431fdc
mov edx, 0x57e81c
call fcn.0052fd10
mov ecx, eax
mov eax, dword [esp + 0x28]
sub ecx, 1
mov dword [esp + eax*8 + 0x70], ecx
lea eax, [esp + eax*8 + 0x74]
mov dword [esp + 0x4c], eax
mov byte [eax], 0
jmp 0x432186
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x43200a
add dword [esi], 1
call fcn.0042f1a0
add esp, 4
test al, al
je 0x43227c
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
mov eax, 0x57e81c
lea ebx, [esp + 0x2c]
call fcn.00401ed0
lea edi, [esp + 0x18]
call fcn.004abdf0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x43204b
call fcn.004ab850
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x40]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x432075
call fcn.004ab850
mov ecx, 0x57e72c
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x4320a5
lea ebx, [esp + 0x14]
lea edi, [esp + 0x18]
call fcn.004abdf0
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
xor ebx, ebx
jmp 0x43210f
mov eax, 0x580ddc
lea ebx, [esp + 0x48]
call fcn.00401ed0
lea ecx, [esp + 0x10]
push ecx
mov edx, ebx
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x70]
push ecx
call fcn.004ac650
add esp, 0xc
push eax
lea edx, [esp + 0x64]
push edx
call fcn.004ac650
add esp, 0xc
mov ebx, eax
lea edi, [esp + 0x10]
call fcn.004abdf0
mov esi, dword [esp + 0x5c]
xor ebx, ebx
cmp esi, ebx
je 0x4320f5
call fcn.004ab850
mov esi, dword [esp + 0x64]
cmp esi, ebx
je 0x432102
call fcn.004ab850
mov esi, dword [esp + 0x48]
cmp esi, ebx
je 0x43210f
call fcn.004ab850
mov eax, dword [esp + 0x28]
mov dword [esp + eax*8 + 0x70], 0xffffffff
lea eax, [esp + eax*8 + 0x74]
push 0x20
mov dword [esp + 0x50], eax
mov byte [eax], bl
call fcn.005662c8
add esp, 4
cmp eax, ebx
je 0x432146
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x1c], bl
mov dword [eax + 0x18], ebx
mov esi, eax
jmp 0x432148
xor esi, esi
lea edi, [esi + 8]
lea ebx, [esp + 0x18]
call fcn.004abdf0
lea edi, [esi + 4]
lea ebx, [esp + 0x14]
call fcn.004abdf0
mov eax, dword [esp + 0x40]
test eax, eax
mov dword [esi], 0
mov dword [esi + 0x18], 0
je 0x432179
mov dword [eax], esi
jmp 0x43217d
mov dword [esp + 0x38], esi
add dword [esp + 0x34], 1
mov dword [esp + 0x40], esi
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x5c]
push ecx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x58]
test esi, esi
je 0x4321b0
call fcn.004ab850
mov ecx, 0x581f38
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x4321e5
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x6c]
push eax
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x68]
jmp 0x43221f
mov ecx, str.desc
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x432228
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x64]
push eax
mov byte [ecx], 1
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x60]
test esi, esi
je 0x432228
call fcn.004ab850
add dword [esp + 0x28], 1
mov ecx, 0x581cec
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
jne 0x431f85
mov ecx, str.group
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x43250c
cmp dword [esp + 0x28], 0
je 0x43229e
mov eax, dword [ebp + 8]
push str.ORDER_BY_cant_be_used_in_conjunction_with_GROUP_BY
push 0xc9
push eax
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
jmp 0x4319d2
push str.Invalid_column_index
push 0xc9
jmp 0x432783
mov edx, dword [ebp + 8]
push str.Invalid_ORDER_BY_column
push 0xc9
push edx
jmp 0x4319cd
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4322c8
call fcn.004ab850
mov ecx, 0x581f0c
lea eax, [esp + 0xc]
call fcn.0041d810
test al, al
je 0x4322f6
mov eax, dword [ebp + 8]
push str.Expecting_BY
push 0xc8
push eax
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
jmp 0x4319d2
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x3b], 1
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x432325
call fcn.004ab850
mov esi, dword [esp + 0xc]
test esi, esi
push ecx
mov eax, esp
mov dword [eax], esi
je 0x432335
add dword [esi], 1
call fcn.0042f1a0
add esp, 4
test al, al
jne 0x43234b
push str.Invalid_GROUP_BY_column
jmp 0x4319c4
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
mov eax, 0x57e81c
lea ebx, [esp + 0x2c]
call fcn.00401ed0
lea edi, [esp + 0x18]
call fcn.004abdf0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x43237c
call fcn.004ab850
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x20]
push edx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4323a6
call fcn.004ab850
mov ecx, 0x57e72c
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x4323d6
lea ebx, [esp + 0x14]
lea edi, [esp + 0x18]
call fcn.004abdf0
lea ebx, [esp + 0xc]
lea edi, [esp + 0x14]
call fcn.004abdf0
xor ebx, ebx
jmp 0x432440
mov eax, 0x580ddc
lea ebx, [esp + 0x2c]
call fcn.00401ed0
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
push ecx
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x48]
push eax
call fcn.004ac650
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
push ecx
call fcn.004ac650
add esp, 0xc
mov ebx, eax
lea edi, [esp + 0x10]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
je 0x432426
call fcn.004ab850
mov esi, dword [esp + 0x3c]
cmp esi, ebx
je 0x432433
call fcn.004ab850
mov esi, dword [esp + 0x2c]
cmp esi, ebx
je 0x432440
call fcn.004ab850
push 0x20
mov dword [esp + 0x74], 0xffffffff
mov byte [esp + 0x78], bl
call fcn.005662c8
add esp, 4
cmp eax, ebx
je 0x43246d
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov byte [eax + 0x1c], bl
mov dword [eax + 0x18], ebx
mov esi, eax
jmp 0x43246f
xor esi, esi
lea edi, [esi + 8]
lea ebx, [esp + 0x18]
call fcn.004abdf0
lea edi, [esi + 4]
lea ebx, [esp + 0x14]
call fcn.004abdf0
cmp dword [esp + 0x40], 0
mov dword [esi], 0
mov dword [esi + 0x18], 0
je 0x4324a3
mov edx, dword [esp + 0x40]
mov dword [edx], esi
jmp 0x4324a7
mov dword [esp + 0x38], esi
mov eax, 1
add dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0042eaf0
add esp, 8
mov ebx, eax
lea edi, [esp + 0xc]
call fcn.004abdf0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4324de
call fcn.004ab850
mov ecx, 0x581cec
lea eax, [esp + 0xc]
call fcn.00401f50
test al, al
je 0x43250c
mov edx, dword [ebp + 8]
push str.Only_single_GROUP_BY_columns_currently_supported
push 0xc9
push edx
call fcn.0042dfe0
mov esi, dword [esp + 0x18]
jmp 0x43278c
mov eax, dword [esp + 0x50]
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x54]
push eax
lea ecx, [esp + 0x3c]
push ecx
push ebx
mov eax, esi
call fcn.004303f0
add esp, 0xc
test al, al
jne 0x432535
mov esi, dword [esp + 0xc]
jmp 0x4319d5
mov edi, dword [esp + 0x38]
xor eax, eax
test edi, edi
mov ecx, edi
je 0x43254a
mov ecx, dword [ecx]
add eax, 1
test ecx, ecx
jne 0x432541
mov edx, dword [esp + 0x28]
sub eax, dword [esp + 0x34]
xor ecx, ecx
test edx, edx
jle 0x43256d
cmp dword [esp + ecx*8 + 0x70], 0xffffffff
jne 0x432566
mov dword [esp + ecx*8 + 0x70], eax
add eax, 1
add ecx, 1
cmp ecx, edx
jl 0x432558
test esi, esi
mov eax, esi
je 0x432589
mov dword [eax + 0x10], ebx
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x432583
add ecx, 1
mov dword [ebx + 0xc], ecx
mov eax, dword [eax]
test eax, eax
jne 0x432573
cmp byte [esp + 0x33], 0
jne 0x43264a
cmp byte [esp + 0x23], 0
jne 0x43264a
test edx, edx
je 0x4325fe
mov edx, dword [esp + 0x50]
push 0
push edx
push esi
push edi
call fcn.004327e0
add esp, 0x10
cmp dword [esi + 0xc], 0
mov edi, eax
je 0x4325d2
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x30], ecx
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x4325d2
add dword [eax], 1
test edi, edi
je 0x43272c
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x74]
push ecx
push edx
push edi
call fcn.0042dc10
push edi
mov esi, eax
call fcn.004ff540
mov edi, esi
jmp 0x432708
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x50]
push eax
push ecx
push esi
push edi
call fcn.004327e0
mov edi, eax
mov eax, dword [esi + 0xc]
add esp, 0x10
test eax, eax
je 0x43270b
push ebx
mov dword [eax + 0x20], ebx
call fcn.004e8150
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0xc]
mov dword [edx + 0x30], eax
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 0x30]
add esp, 4
test eax, eax
je 0x43270b
add dword [eax], 1
jmp 0x43270b
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
push 0
push edx
push esi
push eax
call fcn.004327e0
mov edi, dword [ebp + 0xc]
add esp, 0x10
cmp dword [esi + 0xc], 0
mov ebx, eax
je 0x43267d
mov ecx, dword [esi + 0xc]
mov dword [ecx + 0x30], edi
mov edx, dword [esi + 0xc]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x43267d
add dword [eax], 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4326e7
push 0
lea ecx, [esp + 0x74]
push ecx
push eax
push ebx
call fcn.0042dc10
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4326b5
test edi, edi
mov dword [esi + 0x30], edi
je 0x4326a6
add dword [edi], 1
mov eax, dword [ebp + 8]
push eax
mov dword [esi + 0x20], eax
call fcn.004e8150
add esp, 4
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x40]
push ecx
push esi
call fcn.0042e840
push ebx
mov edi, eax
call fcn.004ff540
add esp, 0x14
push esi
call fcn.004ff540
mov ebx, dword [ebp + 8]
add esp, 4
jmp 0x43270b
mov edx, dword [esp + 0x34]
push edx
lea eax, [esp + 0x74]
push eax
mov eax, dword [esp + 0x40]
push 0
push ebx
call fcn.0042e840
push ebx
mov edi, eax
call fcn.004ff540
mov ebx, dword [ebp + 8]
add esp, 0x14
test edi, edi
je 0x43272c
mov dword [edi + 0x20], ebx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x43271f
add eax, 1
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0xc]
test eax, eax
mov dword [edi + 0x30], eax
je 0x43272c
add dword [eax], 1
mov esi, dword [esp + 0xc]
test esi, esi
je 0x432739
call fcn.004ab850
cmp dword [esp + 0x14], 0
je 0x432749
mov esi, dword [esp + 0x14]
call fcn.004ab850
mov esi, dword [esp + 0x18]
test esi, esi
je 0x432756
call fcn.004ab850
mov esi, dword [esp + 0x24]
test esi, esi
je 0x432763
call fcn.004ab850
mov esi, dword [esp + 0x10]
test esi, esi
je 0x432770
call fcn.004ab850
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x581ed0
push 0xc8
mov ecx, dword [ebp + 8]
push ecx
call fcn.0042dfe0
add esp, 0xc
test esi, esi
je 0x432798
call fcn.004ab850
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4327a5
call fcn.004ab850
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4327b2
call fcn.004ab850
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4327bf
call fcn.004ab850
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4327cc
call fcn.004ab850
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret