Function at 0x100d58b0
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 0x100d598b
cmp dword [ecx + 0x104], eax
je 0x100d598b
cmp dword [ecx + 0x118], ebx
jne 0x100d598b
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x18], eax
jne 0x100d58fe
cmp dword [ebp + 0x1c], eax
je 0x100d5903
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.100e3290
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x100d5987
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x100d5983
mov edx, dword [ebp + 0x20]
mov esi, dword [edx + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d593e
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d5976
mov eax, dword [edx]
mov dword [esp + 0x18], eax
call fcn.100cb480
test eax, eax
jne 0x100d5a39
mov ecx, dword [esp + 0x18]
lea eax, [esi*4 + 0x40]
push 0
push eax
call fcn.1001e930
add esp, 8
test eax, eax
je 0x100d5a39
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 0x100d6253
test esi, esi
jne 0x100d6253
mov dword [esp + 0x10], esi
lea eax, [esp + 0x10]
push esi
push eax
test edi, edi
jns 0x100d5a4a
lea edx, [esi + 0xd]
call fcn.100e0b90
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d5aa0
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.1004b480
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.1004b480
add esp, 0x20
mov dword [esp + 0x10], ebx
jmp 0x100d5ab2
mov ecx, ebx
call fcn.100e2f70
mov esi, 7
jmp 0x100d5983
mov edx, 0xc
call fcn.100e0b90
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d5aa0
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.1004b480
add esp, 0x10
mov dword [esp + 0x10], ebx
jmp 0x100d5ab2
mov ebx, dword [esp + 0x10]
mov edi, ebx
mov dword [esp + 0x10], edi
test esi, esi
jne 0x100d620c
xor edi, edi
test ebx, ebx
je 0x100d621f
cmp dword [ebx], edi
jne 0x100d5ad4
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.10021740
add esp, 8
lea eax, [edi + 1]
jmp 0x100d5ad6
xor eax, eax
test eax, eax
jne 0x100d622e
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5af5
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, ebx
call fcn.10049c30
mov esi, eax
cmp esi, 0x11
jne 0x100d5d12
mov eax, edi
inc edi
mov dword [esp + 0x14], edi
cmp eax, 0x32
jge 0x100d5d12
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.100937b0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x100d5c48
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.1004bd20
mov dword [esi + 0x24], 0
cmp byte [esi + 0x95], 1
jb 0x100d5c0f
mov ecx, esi
call fcn.10046c60
mov ecx, esi
call fcn.10046d40
push ebx
call fcn.10048ea0
add esp, 4
cmp dword [esp + 0x18], 0
jl 0x100d5c2d
mov byte [ebx + 0x93], 0xfe
mov ecx, ebx
call fcn.10049c30
mov esi, eax
cmp esi, 0x11
jne 0x100d5d12
mov edi, dword [esp + 0x14]
jmp 0x100d5b07
cmp edi, 7
jne 0x100d5c54
mov ecx, esi
call fcn.1001ef20
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jne 0x100d5c66
xor esi, esi
jmp 0x100d5c99
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x100d5c83
cmp byte [ecx + 0x12], 1
jne 0x100d5c83
mov esi, dword [ecx + 8]
jmp 0x100d5c95
test dl, 1
je 0x100d5c8c
xor esi, esi
jmp 0x100d5c95
mov dl, 1
call fcn.100436a0
mov esi, eax
mov eax, dword [esp + 0xc]
mov edx, dword [ebx + 0x7c]
test edx, edx
je 0x100d5ca7
mov ecx, eax
call fcn.1001e7b0
mov edx, dword [esp + 0xc]
cmp byte [edx + 0x57], 0
jne 0x100d5d65
test esi, esi
jne 0x100d5cbd
xor eax, eax
jmp 0x100d5cff
mov ecx, esi
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100d5cc6
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 0x100d5cff
push dword [esp + 0x18]
push esi
push eax
call fcn.1012bff0
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 0x100d5d27
push eax
call dword [0x10165b50]
add esp, 4
cmp esi, 0x64
jne 0x100d6208
mov eax, dword [ebx]
mov dword [esp + 0x14], 0
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5d4b
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5d76
mov eax, 1
cmp ax, word [ebx + 0x90]
jae 0x100d5d76
add ecx, 0x28
jmp 0x100d5d8e
mov esi, 7
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x24], esi
jmp 0x100d5d16
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, 0x24
je 0x100d5d9d
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d5dd6
test al, 8
je 0x100d5db0
movsd xmm0, qword [ecx]
call fcn.100429b0
mov esi, eax
mov edi, edx
jmp 0x100d5dd6
test al, 0x12
je 0x100d5dc5
cmp dword [ecx + 8], 0
je 0x100d5dc5
call fcn.100429e0
mov esi, eax
mov edi, edx
jmp 0x100d5dd6
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 0x100d5df1
test edx, edx
jne 0x100d5df1
xor eax, eax
jmp 0x100d5df6
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5e0c
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 0x100d5e27
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5e41
mov eax, 2
cmp ax, word [ebx + 0x90]
jae 0x100d5e41
add ecx, 0x50
jmp 0x100d5e59
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, 0x24
je 0x100d5e68
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
jmp 0x100d5ea1
test al, 8
je 0x100d5e7b
movsd xmm0, qword [ecx]
call fcn.100429b0
mov esi, eax
mov edi, edx
jmp 0x100d5ea1
test al, 0x12
je 0x100d5e90
cmp dword [ecx + 8], 0
je 0x100d5e90
call fcn.100429e0
mov esi, eax
mov edi, edx
jmp 0x100d5ea1
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 0x100d5eb4
test edx, edx
jne 0x100d5eb4
xor eax, eax
jmp 0x100d5eb9
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5ecf
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 0x100d5eea
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
test ecx, ecx
je 0x100d5f04
mov eax, 3
cmp ax, word [ebx + 0x90]
jae 0x100d5f04
add ecx, 0x78
jmp 0x100d5f1c
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, 0x24
je 0x100d5f2f
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x28], esi
jmp 0x100d5f6c
test al, 8
je 0x100d5f42
movsd xmm0, qword [ecx]
call fcn.100429b0
mov dword [esp + 0x28], edx
jmp 0x100d5f6c
test al, 0x12
je 0x100d5f57
cmp dword [ecx + 8], 0
je 0x100d5f57
call fcn.100429e0
mov dword [esp + 0x28], edx
jmp 0x100d5f6c
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 0x100d5f83
test edx, edx
jne 0x100d5f83
xor eax, eax
jmp 0x100d5f88
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5f9e
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d5fb1
push eax
call dword [0x10165b48]
add esp, 4
mov ecx, dword [ebx + 0x78]
mov esi, 4
test ecx, ecx
je 0x100d5fce
cmp si, word [ebx + 0x90]
jae 0x100d5fce
add ecx, 0xa0
jmp 0x100d5fe6
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 0x100d5ff9
cmp byte [ecx + 0x12], 1
jne 0x100d5ff9
mov edi, dword [ecx + 0xc]
jmp 0x100d6022
test al, 0x10
je 0x100d6011
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x100d600d
mov edi, dword [ecx]
add edi, edx
jmp 0x100d6022
mov edi, edx
jmp 0x100d6022
test al, 1
je 0x100d6019
xor edi, edi
jmp 0x100d6022
mov dl, 1
call fcn.10043de0
mov edi, eax
mov ecx, dword [ebx]
mov edx, dword [ebx + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x100d6035
test edx, edx
jne 0x100d6035
xor eax, eax
jmp 0x100d603a
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d6050
push eax
call dword [0x10165b50]
add esp, 4
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d6063
push eax
call dword [0x10165b48]
add esp, 4
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x100d607a
cmp si, word [ebx + 0x90]
jae 0x100d607a
add eax, 0xa0
jmp 0x100d6092
mov ecx, dword [ebx]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.100223b0
mov eax, 0x10151a48
push eax
call fcn.10049000
mov ecx, dword [ebx]
add esp, 4
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x18], eax
cmp byte [ecx + 0x57], 0
jne 0x100d60b2
test edx, edx
jne 0x100d60b2
xor eax, eax
jmp 0x100d60b7
call fcn.1001f000
mov dword [ebx + 0x24], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100d60cd
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 0x100d61dc
cmp dword [ebp + 0x10], 0
je 0x100d61dc
mov edx, dword [esp + 0x18]
test edx, edx
je 0x100d61dc
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.100d3d00
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x100d6208
cmp dword [ebp + 0x18], eax
jne 0x100d6144
cmp dword [ebp + 0x1c], eax
jne 0x100d6144
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 0x100d614e
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.100e30f0
mov esi, eax
add esp, 0x24
test esi, esi
jne 0x100d6208
mov esi, dword [edi + 4]
mov eax, esi
and eax, 0x8000000f
jns 0x100d6196
dec eax
or eax, 0xfffffff0
add eax, 1
jne 0x100d61c0
mov edi, dword [edi]
call fcn.100cb480
test eax, eax
jne 0x100d61fa
lea eax, [esi*4 + 0x40]
mov ecx, edi
push 0
push eax
call fcn.1001e930
add esp, 8
test eax, eax
je 0x100d61fa
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 0x100d5ab2
cmp dword [ebp + 0x18], 0
jne 0x100d614c
cmp dword [ebp + 0x1c], 0
jne 0x100d614c
mov edx, 1
jmp 0x100d614e
mov ecx, dword [esp + 0x14]
call fcn.100e2f70
mov esi, 7
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x100d6257
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.10021740
add esp, 8
push 0x10156e9c
push 0x159e1
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.10021740
add esp, 0x14
mov esi, 0x15
jmp 0x100d6208
xor edi, edi
jmp 0x100d620c
mov ebx, dword [edi]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d626a
push eax
call dword [0x10165b48]
add esp, 4
cmp dword [edi + 0x8c], 0
jl 0x100d6287
jg 0x100d627e
cmp dword [edi + 0x88], 0
jbe 0x100d6287
mov edx, edi
mov ecx, ebx
call fcn.10048d00
mov ecx, edi
call fcn.10046c60
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 0x100d62e4
test eax, eax
jne 0x100d62e4
xor edi, edi
jmp 0x100d62ef
mov edx, eax
mov ecx, ebx
call fcn.1001f000
mov edi, eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x100d6300
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