Function at 0x404070
Capabilities:
Delete file
Print debug messages
Reference sql statements

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5539
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xc0
mov eax, dword [0x511080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
sub esp, 0x18
mov byte [ebp - 4], 2
lea eax, [ebx + 8]
mov byte [ebp - 0x79], 0
mov ecx, esp
push eax
call fcn.0040c2b0
lea edx, [ebp - 0x79]
lea ecx, [ebp - 0x2c]
call fcn.00404b50
add esp, 0x18
test al, al
je 0x4046ee
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
push 0x504fe0
call edi
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
cmova eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 0x18
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
call fcn.0040c430
call fcn.00409150
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
xor eax, eax
mov dword [ebp - 0x64], 0
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 4
call fcn.00403100
push str.logITHWInfoHIstory.db
lea edx, [ebp - 0x74]
lea ecx, [ebp - 0x9c]
call fcn.0040ef20
add esp, 0x1c
lea ecx, [ebp - 0x44]
push eax
call fcn.004015a0
mov ecx, dword [ebp - 0x88]
cmp ecx, 7
jbe 0x4041d1
mov edx, dword [ebp - 0x9c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4041c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047d6
push ecx
push edx
call fcn.004d2f2b
add esp, 8
cmp dword [ebp - 0x30], 7
lea ecx, [ebp - 0x84]
lea eax, [ebp - 0x44]
cmova eax, dword [ebp - 0x44]
push ecx
push eax
call fcn.004ca3d0
add esp, 8
test eax, eax
je 0x404315
mov ecx, dword [ebp - 0x84]
xor edx, edx
call fcn.004c75b0
push str.DB_open_fail_n
call fcn.00401820
add esp, 4
push str.DB_open_fail
call edi
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0xe
movups xmmword [ecx], xmm0
push str.B_DB_open_fail
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040f410
call fcn.00409150
mov ecx, dword [ebp - 0x30]
add esp, 0x18
cmp ecx, 7
jbe 0x40427c
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404272
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 7
jbe 0x4042ca
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4042c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 7
mov word [ebp - 0x74], ax
cmp ecx, 0xf
jbe 0x404722
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404718
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
jmp 0x404718
lea eax, [ebp - 0x2c]
mov edx, str.SELECT_return_FROM_history_WHERE_return
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040f010
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 5
mov esi, dword [ecx + 0x14]
mov eax, esi
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 1
jb 0x404358
lea eax, [edx + 1]
mov dword [ecx + 0x10], eax
mov eax, ecx
cmp esi, 0xf
jbe 0x404350
mov eax, dword [ecx]
mov word [eax + edx], 0x27
jmp 0x40436f
push 1
push 0x505000
mov byte [ebp - 0x80], 0
push dword [ebp - 0x80]
push 1
call fcn.0040fbb0
mov ecx, eax
mov dword [ebp - 0x4c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x5c], xmm0
mov dword [ebp - 0x48], 0
movups xmm0, xmmword [ecx]
movups xmmword [ebp - 0x5c], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [ebp - 0x4c], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xa0]
cmp ecx, 0xf
jbe 0x4043e4
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4043da
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047db
push ecx
push edx
call fcn.004d2f2b
add esp, 8
cmp dword [ebp - 0x48], 0xf
lea eax, [ebp - 0x78]
mov esi, dword [ebp - 0x84]
lea edx, [ebp - 0x5c]
cmova edx, dword [ebp - 0x5c]
mov ecx, esi
push 0
push eax
push 0
push 0
push 0xffffffffffffffff
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0xf
mov byte [ebp - 0xb4], 0
call fcn.0048e910
add esp, 0x14
test eax, eax
jne 0x4045ff
push dword [ebp - 0x78]
call fcn.00446af0
add esp, 4
cmp eax, 0x64
jne 0x404477
push 0x505030
call edi
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0xd
movups xmmword [ecx], xmm0
push str.Table_exists.
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040f410
call fcn.00409150
add esp, 0x18
jmp 0x4045f4
push 0x50505c
call edi
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0x11
movups xmmword [ecx], xmm0
push str.Table_not_exists.
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040f410
call fcn.00409150
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x80], esp
mov ecx, esp
push eax
call fcn.0040c430
sub esp, 0x18
mov byte [ebp - 4], 8
lea eax, [ebx + 0x20]
mov ecx, esp
push eax
call fcn.0040c2b0
mov byte [ebp - 4], 7
call fcn.00405100
lea eax, [ebp - 0x2c]
mov edx, str.INSERT_INTO_history_return__VALUES_
push eax
lea ecx, [ebp - 0xcc]
call fcn.0040f010
add esp, 0x34
mov ecx, eax
mov byte [ebp - 4], 9
mov edi, dword [ecx + 0x14]
mov eax, edi
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 2
jb 0x40451c
lea eax, [edx + 2]
mov dword [ecx + 0x10], eax
mov eax, ecx
cmp edi, 0xf
jbe 0x40450c
mov eax, dword [ecx]
mov edi, 0x2927
mov word [eax + edx], di
mov byte [eax + edx + 2], 0
jmp 0x404533
push 2
push 0x505094
mov byte [ebp - 0x80], 0
push dword [ebp - 0x80]
push 2
call fcn.0040fbb0
mov ecx, eax
movups xmm0, xmmword [ecx]
lea eax, [ebp - 0x9c]
push eax
movups xmmword [ebp - 0x9c], xmm0
movq xmm0, qword [ecx + 0x10]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
lea ecx, [ebp - 0x5c]
movq qword [ebp - 0x8c], xmm0
call fcn.0040c3b0
mov ecx, dword [ebp - 0x88]
cmp ecx, 0xf
jbe 0x4045a4
mov edx, dword [ebp - 0x9c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40459a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e0
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0xf
jbe 0x4045e2
mov edx, dword [ebp - 0xcc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4045d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e0
push ecx
push edx
call fcn.004d2f2b
add esp, 8
cmp dword [ebp - 0x48], 0xf
lea edx, [ebp - 0x5c]
mov ecx, esi
cmova edx, dword [ebp - 0x5c]
call fcn.00403050
push dword [ebp - 0x78]
call fcn.00445930
add esp, 4
xor edx, edx
mov ecx, esi
call fcn.004c75b0
cmp byte [ebp - 0x79], 0
je 0x404620
cmp dword [ebx + 0x34], 7
lea eax, [ebx + 0x20]
cmova eax, dword [ebx + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x48]
cmp ecx, 0xf
jbe 0x404654
mov edx, dword [ebp - 0x5c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40464a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
cmp ecx, 7
jbe 0x4046a0
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404696
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 7
jbe 0x4046ee
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4046e4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047e5
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0x18]
cmp ecx, 0xf
jbe 0x404722
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x404718
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047ea
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
cmp ecx, 7
jbe 0x40476e
mov edx, dword [ebx + 8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x404764
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047ea
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebx + 0x34]
xor eax, eax
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 7
mov word [ebx + 8], ax
cmp ecx, 7
jbe 0x4047b8
mov edx, dword [ebx + 0x20]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4047ae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4047ea
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d2eed
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004d7de5
call fcn.004d7de5
call fcn.004d7de5
call fcn.004d7de5
call fcn.004d7de5
int3