Function at 0x401610
Capabilities:
Reference sql statements

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x401bb6
sub esp, 0x64
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
test eax, eax
je 0x401a1a
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], ecx
mov dword [esp], ecx
mov dword [esp + 4], eax
mov byte [esp + 8], 0x2c
call fcn.00401bc0
mov ecx, dword [esp + 0xc]
test ecx, ecx
jge 0x4019e7
xor eax, eax
xor ecx, ecx
mov edx, dword [esp + 0x18]
cmp edx, 4
jl 0x401631
mov ebx, dword [esp + 0x34]
cmp dword [ebx], 0x2e757063
jne 0x401631
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x40], ecx
mov dword [esp], ebx
mov dword [esp + 4], edx
mov byte [esp + 8], 0x3d
call fcn.00401bc0
mov ecx, dword [esp + 0xc]
test ecx, ecx
jl 0x401990
mov edx, dword [esp + 0x18]
cmp ecx, edx
ja 0x401ba4
cmp ecx, 4
jb 0x401b9a
lea ebx, [ecx - 4]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
mov eax, ebp
mov ebp, dword [esp + 0x34]
mov esi, ebx
add ebx, ebp
mov edi, ebx
lea ebx, [ecx + 1]
cmp ebx, edx
ja 0x401b91
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], edi
sub edx, ebx
mov dword [esp + 0x14], edx
neg edx
sar edx, 0x1f
and ebx, edx
mov dword [esp + 0x24], ebx
lea edx, [ebp + ebx]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
cmp edx, 2
jne 0x4018e9
movzx ebx, word [ebp + ebx]
cmp bx, 0x6e6f
jne 0x4018e9
mov edx, 1
cmp ecx, 7
jne 0x4017cc
movzx ebx, word [ebp + esi]
cmp bx, 0x6c61
jne 0x4017cc
movzx ebx, byte [ebp + esi + 2]
cmp bl, 0x6c
jne 0x4017cc
mov ebx, dword [0x1438f24]
xor eax, eax
jmp 0x40175c
xchg ebp, ecx
mov byte [ebx + eax + 0xd], cl
xchg ebp, ecx
lea eax, [ecx + 1]
mov edx, esi
mov ebx, edi
cmp eax, ebx
jge 0x4017bf
mov ecx, dword [0x1438f24]
mov ebp, dword [0x1438f20]
cmp eax, ecx
jae 0x401b8c
mov ecx, eax
shl eax, 4
mov byte [ebp + eax + 0xc], 1
test dl, dl
je 0x4017a0
mov ebp, 1
mov esi, edx
mov edx, dword [0x1438f24]
mov edi, ebx
mov ebx, dword [0x1438f20]
cmp ecx, edx
jb 0x40174d
jmp 0x401b7a
mov ebp, dword [0x1438f24]
mov esi, edx
mov edx, dword [0x1438f20]
cmp ecx, ebp
jae 0x401b83
movzx ebp, byte [edx + eax + 0xe]
mov edx, esi
jmp 0x401787
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
jmp 0x401631
mov byte [esp + 0x13], dl
mov ebx, dword [0x1438f24]
mov dword [esp + 0x24], ebx
xor ecx, ecx
jmp 0x4017e6
lea ecx, [ebp + 1]
movzx edx, byte [esp + 0x13]
cmp ecx, ebx
jge 0x401892
mov ebp, dword [0x1438f24]
mov esi, dword [0x1438f20]
cmp ecx, ebp
jae 0x401b71
mov ebp, ecx
shl ecx, 4
mov edx, dword [esi + ecx + 4]
mov esi, dword [esi + ecx]
cmp edx, eax
jne 0x4017de
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ecx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.004028b0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x401845
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
jmp 0x4017de
mov ecx, dword [0x1438f24]
mov edx, dword [0x1438f20]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jae 0x401b6c
mov ebx, dword [esp + 0x1c]
mov byte [edx + ebx + 0xc], 1
mov ecx, dword [0x1438f24]
mov edx, dword [0x1438f20]
cmp eax, ecx
jae 0x401b67
movzx ebp, byte [esp + 0x13]
xchg ebp, eax
mov byte [edx + ebx + 0xd], al
xchg ebp, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
jmp 0x401631
call fcn.0042f560
lea eax, [0xd5c2d3]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.0042fe00
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd3f68d]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.0042fe00
call fcn.0042f5d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
jmp 0x401631
cmp edx, 3
jne 0x40190f
mov ebx, dword [esp + 0x24]
movzx edx, word [ebp + ebx]
cmp dx, 0x666f
jne 0x40190f
movzx edx, byte [ebp + ebx + 2]
cmp dl, 0x66
jne 0x40190f
xor edx, edx
jmp 0x40171c
call fcn.0042f560
lea eax, [0xd4bb93]
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.0042fe00
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd5e9b8]
mov dword [esp], eax
mov dword [esp + 4], 0x20
call fcn.0042fe00
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd3f68d]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.0042fe00
call fcn.0042f5d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
jmp 0x401631
call fcn.0042f560
lea eax, [0xd5fa45]
mov dword [esp], eax
mov dword [esp + 4], 0x21
call fcn.0042fe00
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd3f68d]
mov dword [esp], eax
mov dword [esp + 4], 2
call fcn.0042fe00
call fcn.0042f5d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
jmp 0x401631
mov edx, dword [esp + 0x18]
cmp ecx, edx
ja 0x401bb0
lea eax, [ecx + 1]
cmp eax, edx
ja 0x401ba9
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov ebp, dword [esp + 0x34]
add ebp, eax
mov eax, ebx
mov edx, ecx
mov ecx, ebp
jmp 0x401666
mov eax, dword [0x1438f24]
mov ecx, dword [0x1438f20]
test eax, eax
jle 0x401a8f
mov dword [esp + 0x2c], eax
xor edx, edx
jmp 0x401a3d
mov ebx, dword [esp + 0x38]
add ebx, 0x10
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x38], ecx
lea edi, [esp + 0x54]
mov esi, ecx
call fcn.00458818
lea edi, [esp + 0x44]
lea esi, [esp + 0x54]
call fcn.00458818
movzx ecx, byte [esp + 0x50]
test cl, cl
je 0x401a88
mov dword [esp + 0x28], edx
movzx ecx, byte [esp + 0x51]
test cl, cl
je 0x401a80
mov ebx, dword [esp + 0x4c]
movzx ebx, byte [ebx]
test bl, bl
je 0x401b00
test cl, cl
je 0x401a93
mov ebx, dword [esp + 0x4c]
mov byte [ebx], cl
lea ecx, [edx + 1]
cmp ecx, eax
jl 0x401a32
add esp, 0x64
ret
movzx ebx, byte [esp + 0x52]
test bl, bl
je 0x401a82
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
call fcn.0042f560
lea eax, [0xd5769c]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
call fcn.0042fe00
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd5555c]
mov dword [esp], eax
mov dword [esp + 4], 0x18
call fcn.0042fe00
call fcn.0042f5d0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
jmp 0x401a88
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], ecx
call fcn.0042f560
lea eax, [0xd56267]
mov dword [esp], eax
mov dword [esp + 4], 0x19
call fcn.0042fe00
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 4], eax
call fcn.0042fe00
lea eax, [0xd5426b]
mov dword [esp], eax
mov dword [esp + 4], 0x17
call fcn.0042fe00
call fcn.0042f5d0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
jmp 0x401a88
call fcn.00458100
call fcn.00458100
mov eax, ecx
mov ecx, ebp
call fcn.00458100
mov eax, ecx
mov ecx, edx
call fcn.00458100
mov eax, ecx
mov ecx, ebp
call fcn.00458100
call fcn.00458100
mov eax, ebx
mov ecx, edx
call fcn.00458160
mov eax, 4
call fcn.00458160
call fcn.00458120
mov ecx, edx
call fcn.00458160
call fcn.00458120
nop
call fcn.004567f0
jmp fcn.00401610