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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, edx
xor esi, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], ecx
test edi, edi
jns 0x100d565d
cmp dword [ecx + 0x104], esi
je 0x100d565d
cmp dword [ecx + 0x118], ebx
jne 0x100d565d
mov dword [esp + 0x14], esi
cmp dword [ebp + 0x18], esi
jne 0x100d55d0
cmp dword [ebp + 0x1c], esi
jne 0x100d55d0
xor eax, eax
jmp 0x100d55d5
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.100e2d10
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x100d5659
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100d5655
mov edx, dword [ebp + 0x20]
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d5610
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d5648
mov eax, dword [edx]
mov dword [esp + 0x18], eax
call fcn.100cb1b0
test eax, eax
jne 0x100d570b
mov ecx, dword [esp + 0x18]
lea eax, [esi*4 + 0x40]
push 0
push eax
call fcn.1001e930
add esp, 8
test eax, eax
je 0x100d570b
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 + 0x10]
mov ecx, dword [esp + 0x24]
cmp edi, 0xffffffff
je 0x100d5fe5
test esi, esi
jne 0x100d5fe5
mov dword [esp + 0x28], esi
lea eax, [esp + 0x28]
push esi
push eax
test edi, edi
jns 0x100d571c
lea edx, [esi + 0xd]
call fcn.100e07a0
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d5772
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov ebx, dword [esp + 0x28]
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.1004b340
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
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.1004b340
add esp, 0x20
mov dword [esp + 0x10], ebx
jmp 0x100d5784
mov ecx, ebx
call fcn.100e29f0
mov esi, 7
jmp 0x100d5655
mov edx, 0xc
call fcn.100e07a0
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d5772
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov ebx, dword [esp + 0x28]
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.1004b340
add esp, 0x10
mov dword [esp + 0x10], ebx
jmp 0x100d5784
mov ebx, dword [esp + 0x28]
mov edi, ebx
mov dword [esp + 0x10], edi
test esi, esi
jne 0x100d5f25
xor edi, edi
test ebx, ebx
je 0x100d5eef
cmp dword [ebx], edi
jne 0x100d57a6
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.10021700
add esp, 8
lea eax, [edi + 1]
jmp 0x100d57a8
xor eax, eax
test eax, eax
jne 0x100d5efe
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d57c7
push eax
call dword [0x10165b88]
add esp, 4
mov ecx, ebx
call fcn.10049af0
mov esi, eax
cmp esi, 0x11
jne 0x100d59ec
nop dword [eax]
mov eax, edi
inc edi
mov dword [esp + 0x14], edi
cmp eax, 0x32
jge 0x100d59ec
mov eax, dword [ebx + 0x20]
lea ecx, [esp + 0x4c]
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.10092a20
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x100d5921
mov esi, dword [esp + 0x4c]
lea edi, [esp + 0x50]
mov ecx, 0x3a
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x4c]
mov ecx, 0x3a
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x3a
lea esi, [esp + 0x50]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x4c]
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.1004bbe0
mov dword [esi + 0x24], 0
cmp byte [esi + 0x95], 1
jb 0x100d58e8
mov ecx, esi
call fcn.10046b40
mov ecx, esi
call fcn.10046c20
push ebx
call fcn.10048d60
add esp, 4
cmp dword [esp + 0x18], 0
jl 0x100d5906
mov byte [ebx + 0x93], 0xfe
mov ecx, ebx
call fcn.10049af0
mov esi, eax
cmp esi, 0x11
jne 0x100d59ec
mov edi, dword [esp + 0x14]
jmp 0x100d57e0
cmp edi, 7
jne 0x100d592d
mov ecx, esi
call fcn.1001ef20
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jne 0x100d593f
xor esi, esi
jmp 0x100d5972
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100d595c
cmp byte [ecx + 0x12], 1
jne 0x100d595c
mov esi, dword [ecx + 8]
jmp 0x100d596e
test dl, 1
je 0x100d5965
xor esi, esi
jmp 0x100d596e
mov dl, 1
call fcn.10043510
mov esi, eax
mov eax, dword [esp + 0xc]
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x100d5980
mov ecx, eax
call fcn.1001e7b0
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x57], 0
jne 0x100d5a3f
test esi, esi
jne 0x100d5996
xor eax, eax
jmp 0x100d59d9
mov ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d59a0
sub ecx, dword [esp + 0x18]
push 0
lea eax, [ecx + 1]
mov ecx, edx
push eax
mov dword [esp + 0x20], eax
call fcn.1001ec50
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
je 0x100d59d9
push dword [esp + 0x18]
push esi
push eax
call fcn.1012ad80
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, edi
mov dword [ebx + 0x7c], eax
call fcn.1001f000
mov esi, eax
mov dword [ebx + 0x24], esi
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x100d5a01
push eax
call dword [0x10165b90]
add esp, 4
cmp esi, 0x64
jne 0x100d5f21
mov eax, dword [ebx]
mov dword [esp + 0x14], 0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5a25
push eax
call dword [0x10165b88]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5a50
mov eax, 1
cmp ax, word [ebx + 0x90]
jae 0x100d5a50
add ecx, 0x28
jmp 0x100d5a68
mov esi, 7
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x24], esi
jmp 0x100d59f0
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10022340
mov ecx, 0x10150a48
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d5a77
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d5ab0
test al, 8
je 0x100d5a8a
movsd xmm0, qword [ecx]
call fcn.10042840
mov esi, eax
mov edi, edx
jmp 0x100d5ab0
test al, 0x12
je 0x100d5a9f
cmp dword [ecx + 8], 0
je 0x100d5a9f
call fcn.10042870
mov esi, eax
mov edi, edx
jmp 0x100d5ab0
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 + 0x2c], edi
cmp byte [ecx + 0x57], 0
jne 0x100d5acb
test edx, edx
jne 0x100d5acb
xor eax, eax
jmp 0x100d5ad0
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5ae6
push eax
call dword [0x10165b90]
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 0x100d5b01
push eax
call dword [0x10165b88]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5b1b
mov eax, 2
cmp ax, word [ebx + 0x90]
jae 0x100d5b1b
add ecx, 0x50
jmp 0x100d5b33
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10022340
mov ecx, 0x10150a48
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d5b42
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d5b7b
test al, 8
je 0x100d5b55
movsd xmm0, qword [ecx]
call fcn.10042840
mov esi, eax
mov edi, edx
jmp 0x100d5b7b
test al, 0x12
je 0x100d5b6a
cmp dword [ecx + 8], 0
je 0x100d5b6a
call fcn.10042870
mov esi, eax
mov edi, edx
jmp 0x100d5b7b
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 0x100d5b8e
test edx, edx
jne 0x100d5b8e
xor eax, eax
jmp 0x100d5b93
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5ba9
push eax
call dword [0x10165b90]
add esp, 4
mov eax, dword [ebx]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5bc4
push eax
call dword [0x10165b88]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5bde
mov eax, 3
cmp ax, word [ebx + 0x90]
jae 0x100d5bde
add ecx, 0x78
jmp 0x100d5bf6
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10022340
mov ecx, 0x10150a48
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x100d5c09
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x30], esi
jmp 0x100d5c46
test al, 8
je 0x100d5c1c
movsd xmm0, qword [ecx]
call fcn.10042840
mov dword [esp + 0x30], edx
jmp 0x100d5c46
test al, 0x12
je 0x100d5c31
cmp dword [ecx + 8], 0
je 0x100d5c31
call fcn.10042870
mov dword [esp + 0x30], edx
jmp 0x100d5c46
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x34], eax
cmp byte [ecx + 0x57], 0
jne 0x100d5c5d
test edx, edx
jne 0x100d5c5d
xor eax, eax
jmp 0x100d5c62
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5c78
push eax
call dword [0x10165b90]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5c8b
push eax
call dword [0x10165b88]
add esp, 4
mov ecx, dword [ebx + 0x78]
mov esi, 4
test ecx, ecx
je 0x100d5ca8
cmp si, word [ebx + 0x90]
jae 0x100d5ca8
add ecx, 0xa0
jmp 0x100d5cc0
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10022340
mov ecx, 0x10150a48
movzx eax, word [ecx + 0x10]
test al, 2
je 0x100d5cd3
cmp byte [ecx + 0x12], 1
jne 0x100d5cd3
mov edi, dword [ecx + 0xc]
jmp 0x100d5cfc
test al, 0x10
je 0x100d5ceb
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x100d5ce7
mov edi, dword [ecx]
add edi, edx
jmp 0x100d5cfc
mov edi, edx
jmp 0x100d5cfc
test al, 1
je 0x100d5cf3
xor edi, edi
jmp 0x100d5cfc
mov dl, 1
call fcn.10043c50
mov edi, eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x100d5d0f
test edx, edx
jne 0x100d5d0f
xor eax, eax
jmp 0x100d5d14
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5d2a
push eax
call dword [0x10165b90]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5d3d
push eax
call dword [0x10165b88]
add esp, 4
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x100d5d54
cmp si, word [ebx + 0x90]
jae 0x100d5d54
add eax, 0xa0
jmp 0x100d5d6c
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.10022340
mov eax, 0x10150a48
push eax
call fcn.10048ec0
mov ecx, dword [ebx]
add esp, 4
mov edx, dword [ebx + 0x24]
mov esi, eax
mov dword [esp + 0x18], esi
cmp byte [ecx + 0x57], 0
jne 0x100d5d8e
test edx, edx
jne 0x100d5d8e
xor eax, eax
jmp 0x100d5d93
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5da9
push eax
call dword [0x10165b90]
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edx, dword [esp + 0x2c]
or eax, edx
je 0x100d5ec1
cmp dword [ebp + 0x10], 0
je 0x100d5ec1
test esi, esi
je 0x100d5ec1
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x40]
xor ecx, ecx
cmp dword [ebp + 0x18], ecx
cmove eax, ecx
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esp + 0x3c]
push eax
push edi
push esi
push dword [ebp + 0x14]
call fcn.100d3a30
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100d5f21
cmp dword [ebp + 0x18], eax
jne 0x100d5e22
cmp dword [ebp + 0x1c], eax
jne 0x100d5e22
mov ecx, dword [esp + 0x38]
mov eax, 1
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
jmp 0x100d5e30
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
xor eax, eax
lea ebx, [esp + 0x14]
push ebx
push edi
mov edi, dword [ebp + 0x20]
push esi
push dword [esp + 0x3c]
push dword [esp + 0x44]
push dword [esp + 0x58]
push dword [esp + 0x58]
push edx
push ecx
mov ecx, dword [edi + 4]
mov edx, eax
inc ecx
call fcn.100e2b70
mov ebx, dword [esp + 0x4c]
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x100d5f21
mov esi, dword [edi + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d5e7b
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d5ea5
mov edi, dword [edi]
call fcn.100cb1b0
test eax, eax
jne 0x100d5edf
lea eax, [esi*4 + 0x40]
mov ecx, edi
push 0
push eax
call fcn.1001e930
add esp, 8
test eax, eax
je 0x100d5edf
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 0x100d5784
cmp dword [ebp + 0x18], 0
jne 0x100d5e2e
cmp dword [ebp + 0x1c], 0
jne 0x100d5e2e
mov eax, 1
jmp 0x100d5e30
mov ecx, dword [esp + 0x14]
call fcn.100e29f0
mov esi, 7
jmp 0x100d5f21
push str.API_called_with_NULL_prepared_statement
push 0x15
call fcn.10021700
add esp, 8
push 0x10155e9c
push 0x159e1
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.10021700
add esp, 0x14
mov esi, 0x15
mov edi, dword [esp + 0x10]
test edi, edi
je 0x100d5fe5
mov ebx, dword [edi]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d5f40
push eax
call dword [0x10165b88]
add esp, 4
cmp dword [edi + 0x8c], 0
jl 0x100d5f5d
jg 0x100d5f54
cmp dword [edi + 0x88], 0
jbe 0x100d5f5d
mov edx, edi
mov ecx, ebx
call fcn.10048bc0
mov ecx, edi
call fcn.10046b40
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 0x100d5fba
test eax, eax
jne 0x100d5fba
xor edi, edi
jmp 0x100d5fc5
mov edx, eax
mov ecx, ebx
call fcn.1001f000
mov edi, eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d5fe7
push eax
call dword [0x10165b90]
add esp, 4
cmp esi, 0x65
cmovne edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor edi, edi
cmp esi, 0x65
cmovne edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret