Function at 0x401510
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x18]
mov ecx, edi
push 6
push dword [ebp + 0xc]
call fcn.004017e0
cmp dword [esp + 0x60], 0
je 0x40159a
lea ecx, [esp + 8]
push edi
call fcn.0040b3d0
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x18]
push 0
push 0
push 0
call fcn.0040b4d0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
test esi, esi
je 0x4015be
js 0x401792
push esi
call fcn.004088c0
add esp, 4
mov edi, eax
mov dword [esp + 8], eax
add eax, esi
mov dword [esp], eax
push esi
push 0
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
jmp 0x4015c7
push str.SQLite.dll_load_failed_see_docs_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x10000
push str.AcroBroker:_Unexpected_Loading_Warning__
push str.Failed_to_read_and_map_SQLite.dll_to_memory
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x4015ef
mov dword [esp], 0
xor edi, edi
lea ecx, [esp + 0x18]
push esi
push edi
call fcn.0040b2f0
mov ecx, dword [eax]
mov ecx, dword [ecx - 0xc]
test byte [eax + ecx + 0x10], 5
je 0x40169d
test edi, edi
je 0x4015ef
push edi
call fcn.00408930
add esp, 4
nop
test eax, eax
nop
nop
test eax, eax
nop
mov byte [esp + 8], 0
lea esi, [esp + 8]
push esi
call main
add esp, 4
cmp eax, 0xfffffff0
jae 0x40178b
cmp eax, 0xa
ja 0x401624
mov ecx, eax
add cl, al
mov byte [ebx], cl
lea edi, [ebx + 1]
jmp 0x40164d
mov esi, eax
mov ebx, eax
or ebx, 0xf
inc ebx
push ebx
call fcn.004088c0
add esp, 4
mov edi, eax
mov eax, dword [ebp + 8]
mov dword [eax + 8], edi
or ebx, 1
mov dword [eax], ebx
mov ebx, eax
mov eax, esi
mov dword [ebx + 4], esi
lea esi, [esp + 8]
push eax
push esi
push edi
mov esi, eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [edi + esi], 0
mov dword [esp + 0x18], fcn.004018a0
lea edi, [esp + 0x7c]
mov dword [esp + 0x7c], 0x45efb4
lea ecx, [esp + 0x20]
vzeroupper
call fcn.004055a0
lea ecx, [esp + 0x18]
push 0x45efc0
call fcn.0040b1c0
mov ecx, edi
call fcn.0040af10
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp]
sub edx, edi
cmp edx, 0xfffffff0
jae 0x40179b
cmp edx, 0xa
ja 0x4016d2
mov eax, edx
add al, dl
mov byte [ebx], al
lea eax, [ebx + 1]
cmp edi, dword [esp]
je 0x4016f9
cmp edx, 0x80
jae 0x4016fd
mov ecx, eax
mov esi, edi
mov edi, dword [esp]
jmp 0x401760
mov esi, edx
or esi, 0xf
inc esi
push esi
mov dword [esp + 8], edx
call fcn.004088c0
add esp, 4
mov dword [ebx + 8], eax
or esi, 1
mov dword [ebx], esi
mov edx, dword [esp + 4]
mov dword [ebx + 4], edx
cmp edi, dword [esp]
jne 0x4016be
mov ecx, eax
jmp 0x40176b
mov dword [esp + 4], edx
and edx, 0xffffff80
lea ecx, [eax + edx]
lea esi, [edi + edx]
xor ebx, ebx
nop dword [eax]
vmovups ymm0, ymmword [edi + ebx]
vmovups ymm1, ymmword [edi + ebx + 0x20]
vmovups ymm2, ymmword [edi + ebx + 0x40]
vmovups ymm3, ymmword [edi + ebx + 0x60]
vmovups ymmword [eax + ebx], ymm0
vmovups ymmword [eax + ebx + 0x20], ymm1
vmovups ymmword [eax + ebx + 0x40], ymm2
vmovups ymmword [eax + ebx + 0x60], ymm3
sub ebx, 0xffffff80
cmp edx, ebx
jne 0x401710
cmp dword [esp + 4], edx
mov ebx, dword [ebp + 8]
mov edi, dword [esp]
je 0x40176b
nop word cs:[eax + eax]
movzx eax, byte [esi]
mov byte [ecx], al
inc esi
inc ecx
cmp esi, edi
jne 0x401760
mov byte [ecx], 0
mov eax, dword [esp + 8]
test eax, eax
je 0x40165e
push eax
vzeroupper
call fcn.00408930
add esp, 4
jmp 0x40165e
mov ecx, ebx
call fcn.004054b0
lea ecx, [esp + 8]
call fcn.004054c0
mov ecx, ebx
call fcn.004054b0
jmp 0x4017c9
mov esi, eax
lea ecx, [esp + 0x18]
call fcn.004018a0
push esi
call fcn.0042d8d0
int3