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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x1007b958]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x2c], edi
je 0x10038b38
mov eax, dword [edi + 0x6c]
jmp 0x10038b3b
mov eax, dword [edi + 0x70]
xor ebx, ebx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 8], ebx
cmp dword [edi + 0x3c], ebx
jbe 0x10038f1c
xor esi, esi
mov dword [ebp - 0x30], 1
mov ecx, 0xfffffffc
mov dword [ebp - 0x10], esi
lea edx, [eax + 4]
mov dword [ebp - 0x34], 0xfffffff8
sub ecx, eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x10038f03
cmp dword [ebp + 0x14], 0
je 0x10038b9d
cmp eax, 0xffff
je 0x10038f03
cmp eax, 0xfffe
je 0x10038f03
mov eax, dword [edi + 0x40]
movzx ecx, word [esi + eax + 0x54]
mov dword [ebp - 0x24], ecx
movzx ecx, word [esi + eax + 0x56]
mov eax, dword [edx - 4]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x10038bd5
cmp eax, 4
je 0x10038bd5
cmp eax, 3
jne 0x10038f31
xor ebx, ebx
mov dword [edx], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10038cc4
cmp dword [ebp + 8], 0
je 0x10038c09
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 8]
mov ebx, dword [eax + ebx*4]
mov eax, dword [edi + 0x68]
mov esi, dword [ecx]
push ebx
mov dword [ebp - 0x14], ebx
push dword [eax + edx*4]
mov esi, dword [esi + 0x10]
push dword [ebp + 0x10]
push ecx
mov ecx, esi
call dword [0x1008147c]
call esi
jmp 0x10038c8d
mov eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0xc]
mov ebx, dword [eax + ebx*4]
mov dword [ebp - 0x14], ebx
test ecx, ecx
je 0x10038c38
mov eax, dword [edi + 0x68]
mov edx, dword [ebp - 8]
mov esi, dword [ecx]
push ebx
push dword [eax + edx*4]
mov esi, dword [esi + 0x18]
push dword [ebp + 0x10]
push ecx
mov ecx, esi
call dword [0x1008147c]
call esi
jmp 0x10038c8d
mov eax, dword [edi + 0x14]
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 0x10]
mov esi, dword [eax]
push 0
push eax
mov esi, dword [esi + 0xc]
mov ecx, esi
call dword [0x1008147c]
call esi
test eax, eax
js 0x10038f1e
cmp eax, 1
jne 0x10038c69
mov edx, dword [edi + 0x30]
mov dword [ebp - 0x28], edx
jmp 0x10038c6c
mov edx, dword [ebp - 0x28]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x68]
push ebx
mov ebx, dword [ebp - 8]
mov esi, dword [ecx]
push dword [eax + ebx*4]
mov esi, dword [esi + 0x10]
push edx
push ecx
mov ecx, esi
call dword [0x1008147c]
call esi
mov ebx, dword [ebp - 0x14]
test eax, eax
js 0x10038f1e
mov eax, dword [edi + 0x40]
mov ecx, 0x4000
mov esi, dword [ebp - 0x10]
test word [esi + eax + 0x20], cx
je 0x10038cac
mov ebx, dword [ebx]
mov dword [ebp - 0x14], ebx
cmp dword [esi + eax + 0x58], 2
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xc]
jne 0x10038cc4
xor eax, eax
cmp word [ebx], ax
setne al
mov word [ebx], ax
mov eax, dword [ebp - 0x24]
cmp word [ebp - 0x30], ax
jne 0x10038d0f
test ebx, ebx
je 0x10038ce4
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10038cd6
mov eax, dword [ebp - 0xc]
sub ecx, edx
mov dword [eax], ecx
mov edx, dword [edi + 0x40]
mov eax, dword [edx + esi + 0x58]
cmp eax, 5
je 0x10038d8a
cmp eax, 3
jne 0x10038d9c
mov eax, dword [ebp - 0x10]
movzx esi, word [edx + esi + 0x2c]
movzx ebx, word [edx + eax + 0x2e]
jmp 0x10038da2
cmp word [ebp - 0x34], ax
jne 0x10038d50
test ebx, ebx
je 0x10038d37
mov ecx, ebx
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10038d20
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov edx, dword [edi + 0x40]
mov eax, dword [edx + esi + 0x58]
cmp eax, 5
je 0x10038d8a
cmp eax, 3
je 0x10038d8a
mov esi, dword [edx + esi + 0x28]
shr esi, 1
jmp 0x10038da0
mov eax, 0xfffffffe
cmp ax, cx
je 0x10038d99
mov eax, 0xfffffffd
cmp ax, cx
je 0x10038d99
mov eax, 0xfffffffc
cmp ax, cx
je 0x10038d99
mov eax, 0xb
cmp ax, cx
jne 0x10038d87
mov eax, dword [edi + 0x6c]
add eax, dword [ebp - 0x38]
mov esi, dword [eax + edx + 4]
mov edx, dword [edi + 0x40]
jmp 0x10038da0
mov edx, dword [edi + 0x40]
mov eax, dword [ebp - 0x10]
movzx esi, word [edx + esi + 0x2c]
movzx ebx, word [edx + eax + 0x2e]
jmp 0x10038da2
mov edx, dword [edi + 0x40]
mov esi, dword [edx + esi + 0x28]
xor ebx, ebx
mov eax, dword [edi + 0x20]
mov edi, dword [ebp - 0x18]
push dword [ebp - 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [edi + eax*4]
mov edi, dword [ebp - 0x10]
add eax, dword [ebp + 0xc]
push dword [edx + edi + 0x28]
push dword [ebp - 0x14]
push ebx
push esi
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push 1
push eax
push ecx
call dword [sym.imp.ODBC32.dll_SQLBindParameter]
mov edi, dword [ebp - 0x2c]
movzx edx, ax
test dx, dx
je 0x10038e3d
mov edi, edi
cmp word [ebp - 0x20], 3
jne 0x10038e2e
mov eax, dword [edi + 0x20]
push dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x20], 2
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x40]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + ecx*4]
mov edi, dword [ebp - 0x10]
add ecx, dword [ebp + 0xc]
push dword [edi + eax + 0x28]
push dword [ebp - 0x14]
push ebx
push esi
push 2
push dword [ebp - 0x24]
push 1
push ecx
push edx
call dword [sym.imp.ODBC32.dll_SQLBindParameter]
mov edi, dword [ebp - 0x2c]
movzx edx, ax
test dx, dx
jne 0x10038de0
jmp 0x10038e3d
mov ecx, edi
call fcn.10036900
test eax, eax
js 0x10038f1e
cmp word [ebp - 0x24], 2
jne 0x10038efa
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x10038e77
mov eax, dword [edi + 0x20]
push ecx
push ecx
lea ecx, [ebp - 0x1c]
push ecx
push 0x271b
push dword [eax + 0xc]
call dword [sym.imp.ODBC32.dll_SQLGetStmtAttrW]
mov ecx, 0xfffe
test cx, ax
jne 0x10038f49
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
push 0
push esi
push 0x3ed
mov eax, dword [edx + eax*4]
add eax, dword [ebp + 0xc]
push eax
push ecx
call dword [sym.imp.ODBC32.dll_SQLSetDescFieldW]
mov ecx, 0xfffe
test cx, ax
jne 0x10038ef0
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov esi, dword [ebp + 0xc]
push 0
push ebx
mov eax, dword [ecx + eax*4]
push 0x3ee
add eax, esi
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.ODBC32.dll_SQLSetDescFieldW]
mov ecx, 0xfffe
test cx, ax
jne 0x10038ef0
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
push 0
push dword [ebp - 0x14]
mov eax, dword [eax + ebx*4]
push 0x3f2
add eax, esi
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.ODBC32.dll_SQLSetDescFieldW]
mov ecx, 0xfffe
test cx, ax
je 0x10038efd
push dword [edi + 8]
push dword [ebp - 0x1c]
push 4
jmp 0x10038f54
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
inc ebx
add edx, 8
add esi, 0x5c
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], esi
cmp ebx, dword [edi + 0x3c]
jb 0x10038b73
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100720f0
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
mov eax, 0x8000ffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100720f0
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [edi + 0x20]
push dword [edi + 8]
push dword [eax + 0xc]
push 3
push dword [edi + 0x24]
push 0x80040e21
call fcn.10028bb0
mov ecx, dword [ebp - 4]
mov eax, 0x80040e21
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100720f0
mov esp, ebp
pop ebp
ret 0x10