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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x124
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, edx
xor esi, esi
mov dword [esp + 0xc], ebx
xor eax, eax
mov dword [esp + 0x20], ecx
test edi, edi
jns 0x100d529b
cmp dword [ecx + 0x104], eax
je 0x100d529b
cmp dword [ecx + 0x118], ebx
jne 0x100d529b
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x18], eax
jne 0x100d520e
cmp dword [ebp + 0x1c], eax
je 0x100d5213
mov eax, 1
lea edx, [esp + 0x14]
push edx
mov edx, dword [ebp + 8]
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.100e2b60
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x100d5297
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100d5293
mov edx, dword [ebp + 0x20]
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d524e
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d5286
mov eax, dword [edx]
mov dword [esp + 0x18], eax
call fcn.100cad40
test eax, eax
jne 0x100d5349
mov ecx, dword [esp + 0x18]
lea eax, [esi*4 + 0x40]
push 0
push eax
call fcn.1001e600
add esp, 8
test eax, eax
je 0x100d5349
mov edx, dword [ebp + 0x20]
mov dword [edx], eax
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [eax + ecx*4], ebx
inc dword [edx + 4]
xor esi, esi
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
cmp edi, 0xffffffff
je 0x100d5b63
test esi, esi
jne 0x100d5b63
mov dword [esp + 0x10], esi
lea eax, [esp + 0x10]
push esi
push eax
test edi, edi
jns 0x100d535a
lea edx, [esi + 0xd]
call fcn.100e0460
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d53b0
mov ecx, dword [esp + 0x20]
mov eax, ebx
mov ebx, dword [esp + 0x10]
imul dword [ecx + 0x100]
mov esi, eax
mov ecx, edx
mov eax, dword [ebp + 8]
mov edx, 0x400
imul edx
shld ecx, esi, 0xa
shl esi, 0xa
add esi, eax
adc ecx, edx
push ecx
push esi
push 1
push ebx
call fcn.1004b1a0
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
imul dword [ecx + 0x100]
mov esi, eax
mov ecx, edx
mov eax, dword [ebp + 8]
mov edx, 0x400
shld ecx, esi, 0xa
imul edx
shl esi, 0xa
add esi, eax
adc ecx, edx
add esi, 0x3ff
adc ecx, 0
push ecx
push esi
push 2
push ebx
call fcn.1004b1a0
add esp, 0x20
mov dword [esp + 0x10], ebx
jmp 0x100d53c2
mov ecx, ebx
call fcn.100e2840
mov esi, 7
jmp 0x100d5293
mov edx, 0xc
call fcn.100e0460
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d53b0
mov ecx, dword [esp + 0x20]
mov eax, ebx
mov ebx, dword [esp + 0x10]
imul dword [ecx + 0x100]
mov esi, eax
mov ecx, edx
mov eax, dword [ebp + 8]
mov edx, 0x400
imul edx
shld ecx, esi, 0xa
shl esi, 0xa
add esi, eax
mov eax, edi
adc ecx, edx
cdq
add esi, eax
adc ecx, edx
push ecx
push esi
push 1
push ebx
call fcn.1004b1a0
add esp, 0x10
mov dword [esp + 0x10], ebx
jmp 0x100d53c2
mov ebx, dword [esp + 0x10]
mov edi, ebx
mov dword [esp + 0x10], edi
test esi, esi
jne 0x100d5b1c
xor edi, edi
test ebx, ebx
je 0x100d5b2f
cmp dword [ebx], edi
jne 0x100d53e4
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.10021520
add esp, 8
lea eax, [edi + 1]
jmp 0x100d53e6
xor eax, eax
test eax, eax
jne 0x100d5b3e
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5405
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, ebx
call fcn.10049950
mov esi, eax
cmp esi, 0x11
jne 0x100d5622
mov eax, edi
inc edi
mov dword [esp + 0x14], edi
cmp eax, 0x32
jge 0x100d5622
mov eax, dword [ebx + 0x20]
lea ecx, [esp + 0x44]
mov esi, dword [ebx]
mov edx, dword [ebx + 0xc8]
push 0
push ecx
mov dword [esp + 0x20], eax
mov ecx, esi
movzx eax, byte [ebx + 0x94]
push ebx
push eax
push 0xffffffffffffffff
call fcn.100931f0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x100d5558
mov esi, dword [esp + 0x44]
lea edi, [esp + 0x48]
mov ecx, 0x3a
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x44]
mov ecx, 0x3a
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x3a
lea esi, [esp + 0x48]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x44]
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.1004ba40
mov dword [esi + 0x24], 0
cmp byte [esi + 0x95], 1
jb 0x100d551f
mov ecx, esi
call fcn.10046980
mov ecx, esi
call fcn.10046a60
push ebx
call fcn.10048bc0
add esp, 4
cmp dword [esp + 0x18], 0
jl 0x100d553d
mov byte [ebx + 0x93], 0xfe
mov ecx, ebx
call fcn.10049950
mov esi, eax
cmp esi, 0x11
jne 0x100d5622
mov edi, dword [esp + 0x14]
jmp 0x100d5417
cmp edi, 7
jne 0x100d5564
mov ecx, esi
call fcn.1001ebf0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jne 0x100d5576
xor esi, esi
jmp 0x100d55a9
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100d5593
cmp byte [ecx + 0x12], 1
jne 0x100d5593
mov esi, dword [ecx + 8]
jmp 0x100d55a5
test dl, 1
je 0x100d559c
xor esi, esi
jmp 0x100d55a5
mov dl, 1
call fcn.100433c0
mov esi, eax
mov eax, dword [esp + 0xc]
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x100d55b7
mov ecx, eax
call fcn.1001e480
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x57], 0
jne 0x100d5675
test esi, esi
jne 0x100d55cd
xor eax, eax
jmp 0x100d560f
mov ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d55d6
sub ecx, dword [esp + 0x18]
push 0
lea eax, [ecx + 1]
mov ecx, edx
push eax
mov dword [esp + 0x20], eax
call fcn.1001e920
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x100d560f
push dword [esp + 0x18]
push esi
push eax
call fcn.1012bec0
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, edi
mov dword [ebx + 0x7c], eax
call fcn.1001ecd0
mov esi, eax
mov dword [ebx + 0x24], esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100d5637
push eax
call dword [0x10165b50]
add esp, 4
cmp esi, 0x64
jne 0x100d5b18
mov eax, dword [ebx]
mov dword [esp + 0x14], 0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d565b
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5686
mov eax, 1
cmp ax, word [ebx + 0x90]
jae 0x100d5686
add ecx, 0x28
jmp 0x100d569e
mov esi, 7
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x24], esi
jmp 0x100d5626
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100220a0
mov ecx, 0x10151998
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d56ad
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d56e6
test al, 8
je 0x100d56c0
movsd xmm0, qword [ecx]
call fcn.100426d0
mov esi, eax
mov edi, edx
jmp 0x100d56e6
test al, 0x12
je 0x100d56d5
cmp dword [ecx + 8], 0
je 0x100d56d5
call fcn.10042700
mov esi, eax
mov edi, edx
jmp 0x100d56e6
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], edi
cmp byte [ecx + 0x57], 0
jne 0x100d5701
test edx, edx
jne 0x100d5701
xor eax, eax
jmp 0x100d5706
call fcn.1001ecd0
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d571c
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], edi
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5737
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5751
mov eax, 2
cmp ax, word [ebx + 0x90]
jae 0x100d5751
add ecx, 0x50
jmp 0x100d5769
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100220a0
mov ecx, 0x10151998
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d5778
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d57b1
test al, 8
je 0x100d578b
movsd xmm0, qword [ecx]
call fcn.100426d0
mov esi, eax
mov edi, edx
jmp 0x100d57b1
test al, 0x12
je 0x100d57a0
cmp dword [ecx + 8], 0
je 0x100d57a0
call fcn.10042700
mov esi, eax
mov edi, edx
jmp 0x100d57b1
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x100d57c4
test edx, edx
jne 0x100d57c4
xor eax, eax
jmp 0x100d57c9
call fcn.1001ecd0
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d57df
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d57fa
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5814
mov eax, 3
cmp ax, word [ebx + 0x90]
jae 0x100d5814
add ecx, 0x78
jmp 0x100d582c
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100220a0
mov ecx, 0x10151998
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d583f
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x28], esi
jmp 0x100d587c
test al, 8
je 0x100d5852
movsd xmm0, qword [ecx]
call fcn.100426d0
mov dword [esp + 0x28], edx
jmp 0x100d587c
test al, 0x12
je 0x100d5867
cmp dword [ecx + 8], 0
je 0x100d5867
call fcn.10042700
mov dword [esp + 0x28], edx
jmp 0x100d587c
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x2c], eax
cmp byte [ecx + 0x57], 0
jne 0x100d5893
test edx, edx
jne 0x100d5893
xor eax, eax
jmp 0x100d5898
call fcn.1001ecd0
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d58ae
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d58c1
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
mov esi, 4
test ecx, ecx
je 0x100d58de
cmp si, word [ebx + 0x90]
jae 0x100d58de
add ecx, 0xa0
jmp 0x100d58f6
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100220a0
mov ecx, 0x10151998
movzx eax, word [ecx + 0x10]
test al, 2
je 0x100d5909
cmp byte [ecx + 0x12], 1
jne 0x100d5909
mov edi, dword [ecx + 0xc]
jmp 0x100d5932
test al, 0x10
je 0x100d5921
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x100d591d
mov edi, dword [ecx]
add edi, edx
jmp 0x100d5932
mov edi, edx
jmp 0x100d5932
test al, 1
je 0x100d5929
xor edi, edi
jmp 0x100d5932
mov dl, 1
call fcn.10043b00
mov edi, eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x100d5945
test edx, edx
jne 0x100d5945
xor eax, eax
jmp 0x100d594a
call fcn.1001ecd0
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5960
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5973
push eax
call dword [0x10165b48]
add esp, 4
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x100d598a
cmp si, word [ebx + 0x90]
jae 0x100d598a
add eax, 0xa0
jmp 0x100d59a2
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100220a0
mov eax, 0x10151998
push eax
call fcn.10048d20
mov ecx, dword [ebx]
add esp, 4
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
cmp byte [ecx + 0x57], 0
jne 0x100d59c2
test edx, edx
jne 0x100d59c2
xor eax, eax
jmp 0x100d59c7
call fcn.1001ecd0
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d59dd
push eax
call dword [0x10165b50]
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov esi, dword [esp + 0x24]
or eax, esi
je 0x100d5aec
cmp dword [ebp + 0x10], 0
je 0x100d5aec
mov edx, dword [esp + 0x18]
test edx, edx
je 0x100d5aec
xor ecx, ecx
lea eax, [esp + 0x38]
cmp dword [ebp + 0x18], ecx
cmove eax, ecx
mov ecx, dword [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
push edi
push edx
push dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
call fcn.100d3610
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100d5b18
cmp dword [ebp + 0x18], eax
jne 0x100d5a54
cmp dword [ebp + 0x1c], eax
jne 0x100d5a54
mov ecx, dword [esp + 0x30]
lea edx, [eax + 1]
mov esi, dword [esp + 0x34]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], esi
jmp 0x100d5a5e
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
xor edx, edx
lea eax, [esp + 0x14]
push eax
push edi
push dword [esp + 0x20]
mov edi, dword [ebp + 0x20]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push dword [esp + 0x50]
push dword [esp + 0x50]
push esi
push ecx
mov ecx, dword [edi + 4]
inc ecx
call fcn.100e29c0
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x100d5b18
mov esi, dword [edi + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d5aa6
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d5ad0
mov edi, dword [edi]
call fcn.100cad40
test eax, eax
jne 0x100d5b0a
lea eax, [esi*4 + 0x40]
mov ecx, edi
push 0
push eax
call fcn.1001e600
add esp, 8
test eax, eax
je 0x100d5b0a
mov edi, dword [ebp + 0x20]
mov dword [edi], eax
mov edx, dword [edi + 4]
mov ecx, dword [edi]
mov eax, dword [esp + 0x14]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x10]
inc dword [edi + 4]
mov dword [esp + 0x10], eax
jmp 0x100d53c2
cmp dword [ebp + 0x18], 0
jne 0x100d5a5c
cmp dword [ebp + 0x1c], 0
jne 0x100d5a5c
mov edx, 1
jmp 0x100d5a5e
mov ecx, dword [esp + 0x14]
call fcn.100e2840
mov esi, 7
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x100d5b67
cmp esi, 0x65
cmovne edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.API_called_with_NULL_prepared_statement
push 0x15
call fcn.10021520
add esp, 8
push 0x10156dc4
push 0x159e1
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.10021520
add esp, 0x14
mov esi, 0x15
jmp 0x100d5b18
xor edi, edi
jmp 0x100d5b1c
mov ebx, dword [edi]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d5b7a
push eax
call dword [0x10165b48]
add esp, 4
cmp dword [edi + 0x8c], 0
jl 0x100d5b97
jg 0x100d5b8e
cmp dword [edi + 0x88], 0
jbe 0x100d5b97
mov edx, edi
mov ecx, ebx
call fcn.10048a20
mov ecx, edi
call fcn.10046980
mov byte [edi + 0x95], 1
mov dword [edi + 0x20], 0xffffffff
mov dword [edi + 0x24], 0
mov word [edi + 0x92], 0xff02
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x1c], 1
mov dword [edi + 0x30], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x44], 0
cmp byte [ebx + 0x57], 0
jne 0x100d5bf4
test eax, eax
jne 0x100d5bf4
xor edi, edi
jmp 0x100d5bff
mov edx, eax
mov ecx, ebx
call fcn.1001ecd0
mov edi, eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d5c10
push eax
call dword [0x10165b50]
add esp, 4
cmp esi, 0x65
cmovne edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret