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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x10079914]
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 0x10038178
mov eax, dword [edi + 0x6c]
jmp 0x1003817b
mov eax, dword [edi + 0x70]
xor ebx, ebx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 8], ebx
cmp dword [edi + 0x3c], ebx
jbe 0x1003855c
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 - 0x10], edx
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x10038543
cmp dword [ebp + 0x14], 0
je 0x100381dd
cmp eax, 0xffff
je 0x10038543
cmp eax, 0xfffe
je 0x10038543
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 0x10038215
cmp eax, 4
je 0x10038215
cmp eax, 3
jne 0x10038571
xor ebx, ebx
mov dword [edx], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10038304
cmp dword [ebp + 8], 0
je 0x10038249
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 [0x1007f468]
call esi
jmp 0x100382cd
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 0x10038278
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 [0x1007f468]
call esi
jmp 0x100382cd
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 [0x1007f468]
call esi
test eax, eax
js 0x1003855e
cmp eax, 1
jne 0x100382a9
mov edx, dword [edi + 0x30]
mov dword [ebp - 0x28], edx
jmp 0x100382ac
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 [0x1007f468]
call esi
mov ebx, dword [ebp - 0x14]
test eax, eax
js 0x1003855e
mov eax, dword [edi + 0x40]
mov ecx, 0x4000
mov esi, dword [ebp - 0xc]
test word [esi + eax + 0x20], cx
je 0x100382ec
mov ebx, dword [ebx]
mov dword [ebp - 0x14], ebx
cmp dword [esi + eax + 0x58], 2
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x10]
jne 0x10038304
xor eax, eax
cmp word [ebx], ax
setne al
mov word [ebx], ax
mov eax, dword [ebp - 0x24]
cmp word [ebp - 0x30], ax
jne 0x1003834f
test ebx, ebx
je 0x10038324
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10038316
mov eax, dword [ebp - 0x10]
sub ecx, edx
mov dword [eax], ecx
mov eax, dword [edi + 0x40]
mov ecx, dword [esi + eax + 0x58]
cmp ecx, 5
je 0x100383c7
cmp ecx, 3
jne 0x100383d9
mov ecx, dword [ebp - 0xc]
movzx esi, word [esi + eax + 0x2c]
movzx ebx, word [ecx + eax + 0x2e]
jmp 0x100383df
cmp word [ebp - 0x34], ax
jne 0x10038390
test ebx, ebx
je 0x10038377
mov ecx, ebx
lea edx, [ecx + 2]
mov edi, edi
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10038360
sub ecx, edx
sar ecx, 1
lea eax, [ecx + ecx]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [edi + 0x40]
mov ecx, dword [esi + eax + 0x58]
cmp ecx, 5
je 0x100383c7
cmp ecx, 3
je 0x100383c7
mov esi, dword [esi + eax + 0x28]
shr esi, 1
jmp 0x100383dd
mov eax, 0xfffffffe
cmp ax, cx
je 0x100383d6
mov eax, 0xfffffffd
cmp ax, cx
je 0x100383d6
mov eax, 0xfffffffc
cmp ax, cx
je 0x100383d6
mov eax, 0xb
cmp ax, cx
jne 0x100383c4
mov eax, dword [edi + 0x6c]
add eax, dword [ebp - 0x38]
mov esi, dword [eax + edx + 4]
jmp 0x100383dd
mov eax, dword [edi + 0x40]
mov ecx, dword [ebp - 0xc]
movzx esi, word [esi + eax + 0x2c]
movzx ebx, word [ecx + eax + 0x2e]
jmp 0x100383df
mov eax, dword [edi + 0x40]
mov esi, dword [esi + eax + 0x28]
xor ebx, ebx
mov eax, dword [edi + 0x20]
push dword [ebp - 0x10]
mov ecx, dword [ebp - 8]
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 - 0xc]
add ecx, dword [ebp + 0xc]
push dword [edi + eax + 0x28]
push dword [ebp - 0x14]
push ebx
push esi
push dword [ebp - 0x20]
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
je 0x1003847d
mov edi, edi
cmp word [ebp - 0x20], 3
jne 0x1003846e
mov eax, dword [edi + 0x20]
push dword [ebp - 0x10]
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 - 0xc]
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 0x10038420
jmp 0x1003847d
mov ecx, edi
call fcn.10036130
test eax, eax
js 0x1003855e
cmp word [ebp - 0x24], 2
jne 0x1003853a
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x100384b7
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 0x10038589
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 0x10038530
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 0x10038530
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 0x1003853d
push dword [edi + 8]
push dword [ebp - 0x1c]
push 4
jmp 0x10038594
mov ebx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0xc]
inc ebx
add esi, 0x5c
add edx, 8
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], edx
cmp ebx, dword [edi + 0x3c]
jb 0x100381b3
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10071a90
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.10071a90
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.10028160
mov ecx, dword [ebp - 4]
mov eax, 0x80040e21
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10071a90
mov esp, ebp
pop ebp
ret 0x10