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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov ecx, dword [ebp + 0xc]
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
test edi, edi
jne 0x10096c5f
mov eax, str.NULL
jmp 0x10096c78
mov al, byte [edi + 0x61]
cmp al, 0x76
je 0x10096cb2
cmp al, 0xba
je 0x10096c73
cmp al, 0x6d
mov eax, str.invalid
jne 0x10096c78
mov eax, str.unopened
push eax
push str.API_call_with__s_database_connection_pointer
push 0x15
call fcn.1002a9f0
add esp, 0xc
push 0x10167d54
push 0x20ed0
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.1002a9f0
add esp, 0x14
mov eax, 0x15
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0xc]
test ecx, ecx
mov esi, 0x101675d3
cmovne esi, ecx
test eax, eax
je 0x10096ccd
push eax
call dword [0x10178a88]
add esp, 4
mov dword [edi + 0x40], ebx
cmp dword [edi + 0x124], ebx
je 0x10096ce3
xor edx, edx
mov ecx, edi
call fcn.1002b6b0
jmp 0x10096cf0
mov dword [edi + 0x44], 0xffffffff
nop word [eax + eax]
cmp byte [esi], 0
je 0x10097088
lea eax, [esp + 0x2c]
xor ebx, ebx
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x24], ebx
push eax
push ebx
push 0x80
push 0xffffffffffffffff
mov edx, esi
mov dword [esp + 0x38], ebx
mov ecx, edi
mov dword [esp + 0x3c], ebx
call fcn.1009fe60
mov edi, dword [esp + 0x3c]
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
jne 0x10097057
test edi, edi
jne 0x10096d44
mov esi, dword [esp + 0x2c]
mov ebx, eax
mov edi, dword [ebp + 8]
jmp 0x10096cf0
xor esi, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], esi
nop
push edi
call fcn.10055f30
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x10], 0
je 0x10096fb0
cmp eax, 0x64
je 0x10096d96
cmp eax, 0x65
jne 0x10096fb9
cmp dword [esp + 0x28], 0
jne 0x10096fb9
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x20]
and eax, 0x100
or eax, 0
je 0x10096fb9
jmp 0x10096d9d
cmp dword [esp + 0x28], 0
jne 0x10096e08
movzx ebx, word [edi + 0x90]
mov ecx, dword [ebp + 8]
push 0
mov dword [esp + 0x24], ebx
lea eax, [ebx*8 + 4]
push eax
call fcn.10028280
mov esi, eax
add esp, 8
mov dword [esp + 0x18], esi
test esi, esi
je 0x10097059
xor esi, esi
test ebx, ebx
je 0x10096ded
push 0
push 0
mov edx, esi
mov ecx, edi
call fcn.10056fd0
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebx
jl 0x10096dd1
cmp dword [esp + 0x14], 0x64
mov esi, dword [esp + 0x18]
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], 1
jne 0x10096f98
lea ecx, [esi + ebx*4]
xor ebx, ebx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x20], ebx
jle 0x10096f8b
xor edx, edx
mov dword [esp + 0x1c], edx
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10096e38
push eax
call dword [0x10178a88]
mov edx, dword [esp + 0x20]
add esp, 4
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x10096e56
movzx eax, word [edi + 0x90]
cmp ebx, eax
jge 0x10096e56
test ebx, ebx
js 0x10096e56
add ecx, edx
jne 0x10096e6e
xor esi, esi
jmp 0x10096e9d
mov ecx, dword [edi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.1002b6b0
mov ecx, 0x10162818
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x10096e8b
cmp byte [ecx + 0x12], 1
jne 0x10096e8b
mov esi, dword [ecx + 8]
jmp 0x10096e9d
test dl, 1
je 0x10096e94
xor esi, esi
jmp 0x10096e9d
mov dl, 1
call fcn.1004f390
mov esi, eax
mov ecx, dword [edi]
mov edx, dword [edi + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x10096eb0
test edx, edx
jne 0x10096eb0
xor eax, eax
jmp 0x10096eb5
call fcn.10028630
mov dword [edi + 0x24], eax
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10096ecb
push eax
call dword [0x10178a90]
add esp, 4
mov ecx, dword [esp + 0x24]
mov dword [ecx + ebx*4], esi
test esi, esi
jne 0x10096f71
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10096eed
push eax
call dword [0x10178a88]
add esp, 4
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x10096f0b
movzx eax, word [edi + 0x90]
cmp ebx, eax
jge 0x10096f0b
test ebx, ebx
js 0x10096f0b
mov eax, dword [esp + 0x1c]
add eax, ecx
jmp 0x10096f23
mov ecx, dword [edi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.1002b6b0
mov eax, 0x10162818
movzx eax, word [eax + 0x10]
mov ecx, dword [edi]
and eax, 0x3f
mov edx, dword [edi + 0x24]
cmp byte [ecx + 0x57], 0
mov al, byte [eax + 0x101665a8]
mov byte [esp + 0x13], al
jne 0x10096f47
test edx, edx
jne 0x10096f47
xor eax, eax
jmp 0x10096f4c
call fcn.10028630
mov dword [edi + 0x24], eax
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10096f62
push eax
call dword [0x10178a90]
add esp, 4
cmp byte [esp + 0x13], 5
jne 0x1009701c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc ebx
add edx, 0x28
mov dword [esp + 0x1c], edx
cmp ebx, dword [esp + 0x20]
jl 0x10096e21
mov esi, dword [esp + 0x18]
mov dword [ecx + ebx*4], 0
mov ebx, dword [esp + 0x20]
jmp 0x10096f9c
mov ecx, dword [esp + 0x24]
push esi
push ecx
push ebx
push dword [ebp + 0x14]
call dword [ebp + 0x10]
add esp, 0x10
test eax, eax
jne 0x1009702a
mov eax, dword [esp + 0x14]
cmp eax, 0x64
je 0x10096d50
xor ebx, ebx
cmp byte [edi + 0x97], 1
mov dword [esp + 0x14], ebx
jb 0x10096fd5
mov ecx, edi
call fcn.10052a30
mov ebx, eax
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.10052b10
mov esi, dword [esp + 0x2c]
xor edi, edi
movzx eax, byte [esi]
test byte [eax + 0x10161c38], 1
je 0x10096ffe
nop
movzx eax, byte [esi + 1]
inc esi
test byte [eax + 0x10161c38], 1
jne 0x10096ff0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10097010
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.10027de0
test ebx, ebx
jne 0x10097057
mov edi, dword [ebp + 8]
jmp 0x10096cf0
mov ecx, dword [ebp + 8]
call fcn.10028550
mov esi, dword [esp + 0x18]
jmp 0x10097059
cmp byte [edi + 0x97], 1
mov ebx, 4
jb 0x1009703f
mov ecx, edi
call fcn.10052a30
mov ecx, edi
call fcn.10052b10
mov edi, dword [ebp + 8]
mov edx, ebx
mov ecx, edi
mov dword [edi + 0x40], ebx
call fcn.1002b6b0
jmp 0x1009707b
xor esi, esi
test edi, edi
je 0x10097074
cmp byte [edi + 0x97], 1
jb 0x1009706d
mov ecx, edi
call fcn.10052a30
mov ecx, edi
call fcn.10052b10
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x14]
test esi, esi
je 0x10097088
mov edx, esi
mov ecx, edi
call fcn.10027de0
cmp byte [edi + 0x57], 0
jne 0x100970bb
test ebx, ebx
jne 0x100970bb
xor esi, esi
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x100970a1
mov dword [eax], 0
mov eax, dword [edi + 0xc]
test eax, eax
je 0x100970b2
push eax
call dword [0x10178a90]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ecx, edi
call fcn.10028630
mov esi, eax
test esi, esi
je 0x10097094
cmp dword [ebp + 0x18], 0
je 0x100970a1
push edi
call fcn.100db670
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x100970e6
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
jmp 0x1009712f
mov ecx, ebx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100970f0
sub ecx, edx
push 0
lea eax, [ecx + 1]
push eax
mov dword [esp + 0x34], eax
call fcn.10027b10
mov edi, eax
add esp, 8
test edi, edi
je 0x1009711f
push dword [esp + 0x2c]
push ebx
push edi
call fcn.1013c1a0
add esp, 0xc
mov eax, dword [ebp + 0x18]
test edi, edi
mov dword [eax], edi
mov edi, dword [ebp + 8]
jne 0x100970a1
mov esi, 7
mov ecx, edi
mov edx, esi
mov dword [edi + 0x40], esi
call fcn.1002b6b0
jmp 0x100970a1