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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x2c], edi
je 0x1003855e
mov eax, dword [edi + 0x6c]
jmp 0x10038561
mov eax, dword [edi + 0x70]
xor ebx, ebx
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], ebx
cmp dword [edi + 0x3c], ebx
jbe 0x10038954
xor esi, esi
mov dword [ebp - 0x30], 1
mov ecx, 0xfffffffc
mov dword [ebp - 0xc], esi
lea edx, [eax + 4]
mov dword [ebp - 0x34], 0xfffffff8
sub ecx, eax
mov dword [ebp - 8], edx
mov dword [ebp - 0x38], ecx
lea esp, [esp]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x1003893b
cmp dword [ebp + 0x14], 0
je 0x100385ca
cmp eax, 0xffff
je 0x1003893b
cmp eax, 0xfffe
je 0x1003893b
mov eax, dword [edi + 0x40]
movzx ecx, word [esi + eax + 0x54]
mov dword [ebp - 0x20], ecx
movzx ecx, word [esi + eax + 0x56]
mov eax, dword [edx - 4]
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x10038602
cmp eax, 4
je 0x10038602
cmp eax, 3
jne 0x1003895f
xor ebx, ebx
mov dword [edx], 0xffffffff
mov dword [ebp - 0x10], ebx
jmp 0x100386f1
cmp dword [ebp + 8], 0
je 0x10038636
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 4]
mov ebx, dword [eax + ebx*4]
mov eax, dword [edi + 0x68]
mov esi, dword [ecx]
push ebx
mov dword [ebp - 0x10], 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 0x100386ba
mov eax, dword [edi + 0x7c]
mov ecx, dword [edi + 0xc]
mov ebx, dword [eax + ebx*4]
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x10038665
mov eax, dword [edi + 0x68]
mov edx, dword [ebp - 4]
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 0x100386ba
mov eax, dword [edi + 0x14]
lea ecx, [ebp - 0x24]
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 0x10038956
cmp eax, 1
jne 0x10038696
mov edx, dword [edi + 0x30]
mov dword [ebp - 0x24], edx
jmp 0x10038699
mov edx, dword [ebp - 0x24]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 0x68]
push ebx
mov ebx, dword [ebp - 4]
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 - 0x10]
test eax, eax
js 0x10038956
mov eax, dword [edi + 0x40]
mov ecx, 0x4000
mov esi, dword [ebp - 0xc]
test word [esi + eax + 0x20], cx
je 0x100386d9
mov ebx, dword [ebx]
mov dword [ebp - 0x10], ebx
cmp dword [esi + eax + 0x58], 2
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 8]
jne 0x100386f1
xor eax, eax
cmp word [ebx], ax
setne al
mov word [ebx], ax
mov eax, dword [ebp - 0x20]
cmp word [ebp - 0x30], ax
jne 0x1003873c
test ebx, ebx
je 0x10038711
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10038703
mov eax, dword [ebp - 8]
sub ecx, edx
mov dword [eax], ecx
mov edx, dword [edi + 0x40]
mov eax, dword [edx + esi + 0x58]
cmp eax, 5
je 0x100387ba
cmp eax, 3
jne 0x100387cc
mov eax, dword [ebp - 0xc]
movzx esi, word [edx + esi + 0x2c]
movzx ebx, word [edx + eax + 0x2e]
jmp 0x100387d2
cmp word [ebp - 0x34], ax
jne 0x10038780
test ebx, ebx
je 0x10038767
mov ecx, ebx
lea edx, [ecx + 2]
jmp 0x10038750
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10038750
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov edx, dword [edi + 0x40]
mov eax, dword [edx + esi + 0x58]
cmp eax, 5
je 0x100387ba
cmp eax, 3
je 0x100387ba
mov esi, dword [edx + esi + 0x28]
shr esi, 1
jmp 0x100387d0
mov eax, 0xfffffffe
cmp ax, cx
je 0x100387c9
mov eax, 0xfffffffd
cmp ax, cx
je 0x100387c9
mov eax, 0xfffffffc
cmp ax, cx
je 0x100387c9
mov eax, 0xb
cmp ax, cx
jne 0x100387b7
mov eax, dword [edi + 0x6c]
add eax, dword [ebp - 0x38]
mov esi, dword [eax + edx + 4]
mov edx, dword [edi + 0x40]
jmp 0x100387d0
mov edx, dword [edi + 0x40]
mov eax, dword [ebp - 0xc]
movzx esi, word [edx + esi + 0x2c]
movzx ebx, word [edx + eax + 0x2e]
jmp 0x100387d2
mov edx, dword [edi + 0x40]
mov esi, dword [edx + esi + 0x28]
xor ebx, ebx
mov eax, dword [edi + 0x20]
mov edi, dword [ebp - 0x14]
push dword [ebp - 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [edi + eax*4]
add eax, dword [ebp + 0xc]
movzx edi, bx
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0xc]
push dword [edx + edi + 0x28]
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push esi
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
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 0x10038875
cmp word [ebp - 0x1c], 3
jne 0x10038866
mov eax, dword [edi + 0x20]
push dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1c], 2
mov edx, dword [eax + 0xc]
mov eax, dword [edi + 0x40]
mov edi, dword [ebp - 0x14]
mov ecx, dword [edi + ecx*4]
mov edi, dword [ebp - 0xc]
add ecx, dword [ebp + 0xc]
push dword [edi + eax + 0x28]
push dword [ebp - 0x10]
push dword [ebp - 0x28]
push esi
push 2
push dword [ebp - 0x20]
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 0x10038816
jmp 0x10038875
mov ecx, edi
call fcn.10036330
test eax, eax
js 0x10038956
cmp word [ebp - 0x20], 2
jne 0x10038932
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x100388af
mov eax, dword [edi + 0x20]
push ecx
push ecx
lea ecx, [ebp - 0x18]
push ecx
push 0x271b
push dword [eax + 0xc]
call dword [sym.imp.ODBC32.dll_SQLGetStmtAttrW]
mov ecx, 0xfffe
test cx, ax
jne 0x1003896d
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
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 0x10038928
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
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 - 0x18]
call dword [sym.imp.ODBC32.dll_SQLSetDescFieldW]
mov ecx, 0xfffe
test cx, ax
jne 0x10038928
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
push 0
push dword [ebp - 0x10]
mov eax, dword [eax + ebx*4]
push 0x3f2
add eax, esi
push eax
push dword [ebp - 0x18]
call dword [sym.imp.ODBC32.dll_SQLSetDescFieldW]
mov ecx, 0xfffe
test cx, ax
je 0x10038935
push dword [edi + 8]
push dword [ebp - 0x18]
push 4
jmp 0x10038978
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
inc ebx
add edx, 8
add esi, 0x5c
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], esi
cmp ebx, dword [edi + 0x3c]
jb 0x100385a0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
pop edi
pop esi
mov eax, 0x8000ffff
pop ebx
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.10028840
pop edi
pop esi
mov eax, 0x80040e21
pop ebx
mov esp, ebp
pop ebp
ret 0x10