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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
push ebx
mov eax, ecx
mov dword [esp + 0x1c], edx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], ebx
push edi
mov edi, dword [ebp + 8]
test edx, edx
jne 0x10121516
lea ecx, [esp + 0x14]
push ebx
push ecx
lea edx, [ebx + 2]
mov ecx, eax
call fcn.10120910
add esp, 8
test eax, eax
jne 0x101218d9
mov ebx, dword [esp + 0x14]
push esi
push edi
push 1
push ebx
call fcn.1004b480
add esp, 0x10
xor edi, edi
test ebx, ebx
jne 0x101211a6
push str.API_called_with_NULL_prepared_statement
push 0x15
call fcn.10021740
add esp, 8
jmp 0x101211c6
cmp dword [ebx], edi
jne 0x101211c0
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.10021740
add esp, 8
mov eax, 1
jmp 0x101211c2
xor eax, eax
test eax, eax
je 0x101211e9
push 0x10156e9c
push 0x159e1
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.10021740
add esp, 0x14
jmp 0x1012143a
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10121200
push eax
call dword [0x10166b48]
add esp, 4
mov ecx, ebx
call fcn.10049c30
mov esi, eax
cmp esi, 0x11
jne 0x1012141c
mov ecx, edi
inc edi
mov dword [esp + 0x20], edi
cmp ecx, 0x32
jge 0x1012141c
mov eax, dword [ebx + 0x20]
lea ecx, [esp + 0x14]
mov esi, dword [ebx]
mov edx, dword [ebx + 0xc8]
push 0
push ecx
mov dword [esp + 0x24], eax
mov ecx, esi
movzx eax, byte [ebx + 0x94]
push ebx
push eax
push 0xffffffffffffffff
call fcn.100937b0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x10121353
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x38]
mov ecx, 0x3a
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x14]
mov ecx, 0x3a
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x3a
lea esi, [esp + 0x38]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 8]
mov dword [esi + 8], eax
mov eax, dword [ebx + 4]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 4], eax
mov eax, dword [ebx + 0xc8]
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 0xc8]
mov dword [esi + 0xc8], eax
mov dword [ebx + 0xc8], ecx
mov ecx, esi
mov eax, dword [esi + 0xdc]
mov dword [ebx + 0xdc], eax
mov al, byte [esi + 0x94]
mov byte [ebx + 0x94], al
movups xmm0, xmmword [esi + 0xa4]
movups xmmword [ebx + 0xa4], xmm0
movups xmm0, xmmword [esi + 0xb4]
movups xmmword [ebx + 0xb4], xmm0
mov eax, dword [esi + 0xc4]
mov dword [ebx + 0xc4], eax
inc dword [ebx + 0xb8]
call fcn.1004bd20
mov dword [esi + 0x24], 0
cmp byte [esi + 0x95], 1
jb 0x1012131a
mov ecx, esi
call fcn.10046c60
mov ecx, esi
call fcn.10046d40
push ebx
call fcn.10048ea0
add esp, 4
cmp dword [esp + 0x1c], 0
jl 0x10121338
mov byte [ebx + 0x93], 0xfe
mov ecx, ebx
call fcn.10049c30
mov esi, eax
cmp esi, 0x11
jne 0x1012141c
mov edi, dword [esp + 0x20]
jmp 0x10121212
cmp edi, 7
jne 0x1012135f
mov ecx, esi
call fcn.1001ef20
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jne 0x10121371
xor esi, esi
jmp 0x101213a4
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x1012138e
cmp byte [ecx + 0x12], 1
jne 0x1012138e
mov esi, dword [ecx + 8]
jmp 0x101213a0
test dl, 1
je 0x10121397
xor esi, esi
jmp 0x101213a0
mov dl, 1
call fcn.100436a0
mov esi, eax
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x101213b2
mov ecx, eax
call fcn.1001e7b0
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
jne 0x10121449
test esi, esi
jne 0x101213c8
xor eax, eax
jmp 0x10121409
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101213d0
sub ecx, edx
push 0
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x28], eax
call fcn.1001ec50
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10121409
push dword [esp + 0x20]
push esi
push eax
call fcn.1012bff0
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov edx, edi
mov dword [ebx + 0x7c], eax
call fcn.1001f000
mov esi, eax
mov dword [ebx + 0x24], esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10121431
push eax
call dword [0x10166b50]
add esp, 4
cmp esi, 0x64
je 0x1012150c
test ebx, ebx
jne 0x1012145a
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 7
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x24], esi
jmp 0x10121420
mov esi, dword [ebx]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1012146d
push eax
call dword [0x10166b48]
add esp, 4
cmp dword [ebx + 0x8c], 0
jl 0x1012148a
jg 0x10121481
cmp dword [ebx + 0x88], 0
jbe 0x1012148a
mov edx, ebx
mov ecx, esi
call fcn.10048d00
mov ecx, ebx
call fcn.10046c60
mov byte [ebx + 0x95], 1
mov dword [ebx + 0x20], 0xffffffff
mov dword [ebx + 0x24], 0
mov word [ebx + 0x92], 0xff02
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x1c], 1
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
cmp byte [esi + 0x57], 0
jne 0x101214e7
test eax, eax
jne 0x101214e7
xor edi, edi
jmp 0x101214f2
mov edx, eax
mov ecx, esi
call fcn.1001f000
mov edi, eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10121503
push eax
call dword [0x10166b50]
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov edx, 1
push esi
push edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0xffffffff
call fcn.10119120
mov edi, eax
add esp, 8
mov esi, 1
mov dword [esp + 0x1c], esi
test edi, edi
jne 0x101217e8
mov edx, dword [esp + 0x24]
mov ecx, edx
mov dword [esp + 0x10], 0x28
mov dword [esp + 0x14], ecx
nop dword [eax]
mov eax, dword [esp + 0x28]
cmp esi, dword [eax + 0xc]
jg 0x10121808
mov eax, dword [eax + 0x14]
cmp byte [eax + esi - 1], 0
jne 0x101217c7
test ebx, ebx
je 0x101216e5
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10121596
push eax
call dword [0x10166b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x101215b6
movzx eax, word [ebx + 0x90]
cmp esi, eax
jge 0x101215b6
test esi, esi
js 0x101215b6
add ecx, dword [esp + 0x10]
jne 0x101215ce
xor edi, edi
jmp 0x101215fd
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100223b0
mov ecx, 0x10151a48
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x101215eb
cmp byte [ecx + 0x12], 1
jne 0x101215eb
mov edi, dword [ecx + 8]
jmp 0x101215fd
test dl, 1
je 0x101215f4
xor edi, edi
jmp 0x101215fd
mov dl, 1
call fcn.100436a0
mov edi, eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x10121610
test edx, edx
jne 0x10121610
xor eax, eax
jmp 0x10121615
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012162b
push eax
call dword [0x10166b50]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012163e
push eax
call dword [0x10166b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x1012165a
movzx eax, word [ebx + 0x90]
cmp esi, eax
jge 0x1012165a
test esi, esi
js 0x1012165a
add ecx, dword [esp + 0x10]
jmp 0x10121672
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100223b0
mov ecx, 0x10151a48
movzx eax, word [ecx + 0x10]
test al, 2
je 0x10121685
cmp byte [ecx + 0x12], 1
jne 0x10121685
mov esi, dword [ecx + 0xc]
jmp 0x101216ae
test al, 0x10
je 0x1012169d
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x10121699
mov esi, dword [ecx]
add esi, edx
jmp 0x101216ae
mov esi, edx
jmp 0x101216ae
test al, 1
je 0x101216a5
xor esi, esi
jmp 0x101216ae
mov dl, 1
call fcn.10043de0
mov esi, eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x101216c1
test edx, edx
jne 0x101216c1
xor eax, eax
jmp 0x101216c6
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10121768
push eax
call dword [0x10166b50]
add esp, 4
jmp 0x10121768
test edx, edx
je 0x101217c7
mov ecx, dword [ecx]
test ecx, ecx
jne 0x101216f7
xor edi, edi
jmp 0x10121726
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x10121714
cmp byte [ecx + 0x12], 1
jne 0x10121714
mov edi, dword [ecx + 8]
jmp 0x10121726
test dl, 1
je 0x1012171d
xor edi, edi
jmp 0x10121726
mov dl, 1
call fcn.100436a0
mov edi, eax
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
movzx eax, word [ecx + 0x10]
test al, 2
je 0x1012173f
cmp byte [ecx + 0x12], 1
jne 0x1012173f
mov esi, dword [ecx + 0xc]
jmp 0x10121768
test al, 0x10
je 0x10121757
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x10121753
mov esi, dword [ecx]
add esi, edx
jmp 0x10121768
mov esi, edx
jmp 0x10121768
test al, 1
je 0x1012175f
xor esi, esi
jmp 0x10121768
mov dl, 1
call fcn.10043de0
mov esi, eax
xor eax, eax
mov dword [esp + 0x34], eax
test edi, edi
je 0x10121798
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x2c]
push 0x10121060
push esi
push edi
mov eax, dword [ecx + 0x3c]
push 4
push edx
push dword [ecx + 0x38]
mov eax, dword [eax + 8]
call eax
mov edi, eax
add esp, 0x18
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cdq
mov ecx, dword [ecx + 0x18]
sub dword [ecx + esi*8 - 8], eax
mov eax, dword [esp + 0x18]
sbb dword [ecx + esi*8 - 4], edx
mov eax, dword [eax + 0x18]
cmp dword [eax + esi*8 - 4], 0
jl 0x101217e3
jg 0x101217c3
cmp dword [eax + esi*8 - 8], 0
jb 0x101217e3
mov edx, dword [esp + 0x24]
add dword [esp + 0x10], 0x28
inc esi
add dword [esp + 0x14], 4
mov dword [esp + 0x1c], esi
test edi, edi
jne 0x101217e8
mov ecx, dword [esp + 0x14]
jmp 0x10121560
mov edi, 0x10b
mov eax, dword [esp + 0x18]
add dword [eax + 0x10], 0xffffffff
adc dword [eax + 0x14], 0xffffffff
test ebx, ebx
jne 0x10121821
xor esi, esi
test edi, edi
cmovne esi, edi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x14], 0
jg 0x101217ec
jl 0x1012181a
cmp dword [eax + 0x10], 1
jae 0x101217ec
mov edi, 0x10b
jmp 0x101217f4
mov esi, dword [ebx]
mov dword [esp + 0x20], esi
mov eax, dword [esi + 0xc]
test eax, eax
je 0x10121838
push eax
call dword [0x10166b48]
add esp, 4
cmp dword [ebx + 0x8c], 0
jl 0x10121855
jg 0x1012184c
cmp dword [ebx + 0x88], 0
jbe 0x10121855
mov edx, ebx
mov ecx, esi
call fcn.10048d00
mov ecx, ebx
call fcn.10046c60
mov byte [ebx + 0x95], 1
mov dword [ebx + 0x20], 0xffffffff
mov dword [ebx + 0x24], 0
mov word [ebx + 0x92], 0xff02
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x1c], 1
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
cmp byte [esi + 0x57], 0
jne 0x101218b2
test eax, eax
jne 0x101218b2
xor esi, esi
jmp 0x101218bd
mov edx, eax
mov ecx, esi
call fcn.1001f000
mov esi, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x101218d2
push eax
call dword [0x10166b50]
add esp, 4
test edi, edi
cmovne esi, edi
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret