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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov eax, ecx
mov dword [esp + 0x18], edx
push esi
push edi
xor esi, esi
mov dword [esp + 0x14], eax
mov ecx, dword [eax]
xor edi, edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], esi
test edx, edx
jne 0x1012fd0d
lea ecx, [esp + 0x1c]
push edi
push ecx
lea edx, [esi + 2]
mov ecx, eax
call fcn.1012f1b0
mov edi, eax
add esp, 8
test edi, edi
jne 0x101300bd
push dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
push dword [ebp + 8]
push 1
push esi
call fcn.10056380
add esp, 0x10
mov dword [esp + 0x1c], edi
test esi, esi
jne 0x1012faa7
push str.API_called_with_NULL_prepared_statement
push 0x15
call fcn.100296a0
add esp, 8
jmp 0x1012fac8
cmp dword [esi], 0
jne 0x1012fac2
push str.API_called_with_finalized_prepared_statement
push 0x15
call fcn.100296a0
add esp, 8
mov eax, 1
jmp 0x1012fac4
xor eax, eax
test eax, eax
je 0x1012faeb
push 0x10166fc4
push 0x160fd
push str.misuse
push str._s_at_line__d_of___.10s_
push 0x15
call fcn.100296a0
add esp, 0x14
jmp 0x1012fb72
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012fb02
push eax
call dword [0x10177b98]
add esp, 4
mov ecx, esi
call fcn.10054980
mov ebx, eax
cmp ebx, 0x11
jne 0x1012fb54
mov eax, dword [esp + 0x1c]
mov ecx, eax
inc eax
mov dword [esp + 0x1c], eax
cmp ecx, 0x32
jge 0x1012fb54
mov ebx, dword [esi + 0x20]
mov ecx, esi
call fcn.1009d980
mov dword [esp + 0x28], eax
test eax, eax
jne 0x1012fb83
push esi
call fcn.10053c90
add esp, 4
test ebx, ebx
js 0x1012fb46
mov byte [esi + 0x95], 0xfe
mov ecx, esi
call fcn.10054980
mov ebx, eax
cmp ebx, 0x11
je 0x1012fb10
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012fb69
push eax
call dword [0x10177ba0]
add esp, 4
cmp ebx, 0x64
je 0x1012fd09
test esi, esi
jne 0x1012fc57
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x124]
test ecx, ecx
jne 0x1012fb95
xor ebx, ebx
jmp 0x1012fbc8
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x1012fbb2
cmp byte [ecx + 0x12], 1
jne 0x1012fbb2
mov ebx, dword [ecx + 8]
jmp 0x1012fbc4
test dl, 1
je 0x1012fbbb
xor ebx, ebx
jmp 0x1012fbc4
mov dl, 1
call fcn.1004e000
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x1012fbd6
mov ecx, eax
call fcn.10026a90
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x57], 0
jne 0x1012fc43
test ebx, ebx
jne 0x1012fbe8
xor eax, eax
jmp 0x1012fc29
mov ecx, ebx
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1012fbf0
sub ecx, edx
push 0
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x14]
push eax
mov dword [esp + 0x24], eax
call fcn.10026f30
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x1012fc29
push dword [esp + 0x1c]
push ebx
push eax
call fcn.10139d00
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x7c], eax
call fcn.100272e0
mov ebx, eax
mov dword [esi + 0x24], ebx
jmp 0x1012fb54
mov ebx, 7
mov dword [esi + 0x7c], 0
mov dword [esi + 0x24], ebx
jmp 0x1012fb58
mov edi, dword [esi]
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1012fc6a
push eax
call dword [0x10177b98]
add esp, 4
cmp dword [esi + 0x8c], 0
jl 0x1012fc87
jg 0x1012fc7e
cmp dword [esi + 0x88], 0
jbe 0x1012fc87
mov edx, esi
mov ecx, edi
call fcn.10053af0
mov ecx, esi
call fcn.10051730
mov byte [esi + 0x97], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], 0
mov word [esi + 0x94], 0xff02
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x1c], 1
mov dword [esi + 0x30], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
cmp byte [edi + 0x57], 0
jne 0x1012fce4
test eax, eax
jne 0x1012fce4
xor esi, esi
jmp 0x1012fcef
mov edx, eax
mov ecx, edi
call fcn.100272e0
mov esi, eax
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1012fd00
push eax
call dword [0x10177ba0]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, 1
mov ebx, 0x28
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x24]
cmp edx, dword [eax + 0xc]
jg 0x1012fff1
mov eax, dword [eax + 0x14]
cmp byte [eax + edx - 1], 0
jne 0x1012ffae
test esi, esi
je 0x1012febe
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012fd6d
push eax
call dword [0x10177b98]
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x1012fd8b
movzx eax, word [esi + 0x90]
cmp edx, eax
jge 0x1012fd8b
test edx, edx
js 0x1012fd8b
add ecx, ebx
jne 0x1012fda3
xor ebx, ebx
jmp 0x1012fdd2
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.1002a360
mov ecx, 0x10161a88
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x1012fdc0
cmp byte [ecx + 0x12], 1
jne 0x1012fdc0
mov ebx, dword [ecx + 8]
jmp 0x1012fdd2
test dl, 1
je 0x1012fdc9
xor ebx, ebx
jmp 0x1012fdd2
mov dl, 1
call fcn.1004e000
mov ebx, eax
mov ecx, dword [esi]
mov edx, dword [esi + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x1012fde5
test edx, edx
jne 0x1012fde5
xor eax, eax
jmp 0x1012fdea
call fcn.100272e0
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012fe00
push eax
call dword [0x10177ba0]
add esp, 4
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012fe13
push eax
call dword [0x10177b98]
add esp, 4
mov ecx, dword [esi + 0x78]
test ecx, ecx
je 0x1012fe33
movzx eax, word [esi + 0x90]
mov edx, dword [esp + 0x10]
cmp edx, eax
jge 0x1012fe33
test edx, edx
js 0x1012fe33
add ecx, dword [esp + 0x1c]
jmp 0x1012fe4b
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.1002a360
mov ecx, 0x10161a88
movzx eax, word [ecx + 0x10]
test al, 2
je 0x1012fe5e
cmp byte [ecx + 0x12], 1
jne 0x1012fe5e
mov edi, dword [ecx + 0xc]
jmp 0x1012fe87
test al, 0x10
je 0x1012fe76
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x1012fe72
mov edi, dword [ecx]
add edi, edx
jmp 0x1012fe87
mov edi, edx
jmp 0x1012fe87
test al, 1
je 0x1012fe7e
xor edi, edi
jmp 0x1012fe87
mov dl, 1
call fcn.1004e750
mov edi, eax
mov ecx, dword [esi]
mov edx, dword [esi + 0x24]
cmp byte [ecx + 0x57], 0
jne 0x1012fe9a
test edx, edx
jne 0x1012fe9a
xor eax, eax
jmp 0x1012fe9f
call fcn.100272e0
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1012ff44
push eax
call dword [0x10177ba0]
add esp, 4
jmp 0x1012ff44
cmp dword [esp + 0x20], 0
je 0x1012ffae
mov ecx, dword [ecx]
test ecx, ecx
jne 0x1012fed3
xor ebx, ebx
jmp 0x1012ff02
movzx edx, word [ecx + 0x10]
mov eax, edx
and eax, 0x202
cmp eax, 0x202
jne 0x1012fef0
cmp byte [ecx + 0x12], 1
jne 0x1012fef0
mov ebx, dword [ecx + 8]
jmp 0x1012ff02
test dl, 1
je 0x1012fef9
xor ebx, ebx
jmp 0x1012ff02
mov dl, 1
call fcn.1004e000
mov ebx, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx]
movzx eax, word [ecx + 0x10]
test al, 2
je 0x1012ff1b
cmp byte [ecx + 0x12], 1
jne 0x1012ff1b
mov edi, dword [ecx + 0xc]
jmp 0x1012ff44
test al, 0x10
je 0x1012ff33
mov edx, dword [ecx + 0xc]
test eax, 0x400
je 0x1012ff2f
mov edi, dword [ecx]
add edi, edx
jmp 0x1012ff44
mov edi, edx
jmp 0x1012ff44
test al, 1
je 0x1012ff3b
xor edi, edi
jmp 0x1012ff44
mov dl, 1
call fcn.1004e750
mov edi, eax
xor eax, eax
mov dword [esp + 0x34], eax
test ebx, ebx
jne 0x1012ff52
xor edi, edi
jmp 0x1012ff78
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x2c]
push 0x1012f960
push edi
push ebx
mov eax, dword [ecx + 0x40]
push 4
push edx
push dword [ecx + 0x3c]
mov eax, dword [eax + 8]
call eax
mov edi, eax
add esp, 0x18
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
lea ebx, [ecx*8]
cdq
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
sub dword [ecx + ebx - 8], eax
mov eax, dword [esp + 0x14]
sbb dword [ecx + ebx - 4], edx
mov eax, dword [eax + 0x18]
cmp dword [eax + ebx - 4], 0
jl 0x1012ffce
jg 0x1012ffaa
cmp dword [eax + ebx - 8], 0
jb 0x1012ffce
mov edx, dword [esp + 0x10]
add dword [esp + 0x1c], 0x28
inc edx
add dword [esp + 0x18], 4
mov dword [esp + 0x10], edx
test edi, edi
jne 0x1012ffd3
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x1012fd33
mov edi, 0x10b
mov eax, dword [esp + 0x14]
add dword [eax + 0x10], 0xffffffff
adc dword [eax + 0x14], 0xffffffff
test esi, esi
jne 0x1013000d
test edi, edi
cmove edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
jne 0x1012ffd3
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x14], edi
jg 0x1012ffd7
jl 0x10130006
cmp dword [eax + 0x10], 1
jae 0x1012ffd7
mov edi, 0x10b
jmp 0x1012ffdf
mov ebx, dword [esi]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10130020
push eax
call dword [0x10177b98]
add esp, 4
cmp dword [esi + 0x8c], 0
jl 0x1013003d
jg 0x10130034
cmp dword [esi + 0x88], 0
jbe 0x1013003d
mov edx, esi
mov ecx, ebx
call fcn.10053af0
mov ecx, esi
call fcn.10051730
mov byte [esi + 0x97], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], 0
mov word [esi + 0x94], 0xff02
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x1c], 1
mov dword [esi + 0x30], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
cmp byte [ebx + 0x57], 0
jne 0x1013009a
test eax, eax
jne 0x1013009a
xor esi, esi
jmp 0x101300a5
mov edx, eax
mov ecx, ebx
call fcn.100272e0
mov esi, eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x101300b6
push eax
call dword [0x10177ba0]
add esp, 4
test edi, edi
cmove edi, esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret