Function at 0x405100
Capabilities:
Print debug messages

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 0x4f56b3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
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], 1
lea ecx, [ebp - 0x4c]
cmp dword [ebx + 0x1c], 7
lea eax, [ebx + 8]
push ecx
cmova eax, dword [ebx + 8]
push eax
mov dword [ebp - 0x4c], 0
call fcn.004ca3d0
add esp, 8
test eax, eax
je 0x4051bc
mov ecx, dword [ebp - 0x4c]
xor edx, edx
call fcn.004c75b0
push str.DB_open_fail_n
call fcn.00401820
add esp, 4
push str.DB_open_fail
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0xe
movups xmmword [ecx], xmm0
push str.C_DB_open_fail
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040f410
call fcn.00409150
add esp, 0x18
jmp 0x4055a9
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
xor esi, esi
movq qword [ebp - 0x20], xmm0
xor eax, eax
mov dword [ebp - 0x44], esi
xor edi, edi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x38]
push 0x22
push str.SELECT_time_value_start_from_Power
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
call fcn.0040f410
push edi
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x24], 0xf
lea edx, [ebp - 0x38]
mov ecx, dword [ebp - 0x4c]
cmova edx, dword [ebp - 0x38]
push eax
push edi
push edi
push 0xffffffffffffffff
call fcn.0048e910
add esp, 0x14
test eax, eax
jne 0x4053bd
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x405238
movzx esi, word [eax + 0x90]
jmp 0x40523a
xor esi, esi
mov dword [ebp - 0x44], esi
xor eax, eax
nop
cmp eax, 1
je 0x4053b7
push dword [ebp - 0x3c]
call fcn.00446af0
add esp, 4
mov dword [ebp - 0x40], eax
cmp eax, 0x64
jne 0x4053ae
xorps xmm0, xmm0
xor edi, edi
movq xmm1, xmm0
movq qword [ebp - 0x70], xmm1
movups xmmword [ebp - 0x80], xmm0
test esi, esi
je 0x405375
nop word [eax + eax]
test edi, edi
jne 0x40529b
push edi
push dword [ebp - 0x3c]
call fcn.004476e0
add esp, 8
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
jmp 0x405360
cmp edi, 1
jne 0x4052b4
push edi
push dword [ebp - 0x3c]
call fcn.00447570
fstp qword [ebp - 0x78]
add esp, 8
jmp 0x405360
cmp edi, 2
jne 0x405360
mov esi, dword [ebp - 0x3c]
test esi, esi
jne 0x4052d5
mov ecx, 0x501150
call fcn.0043f1f0
mov ecx, eax
jmp 0x40535a
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4052e8
push eax
call dword [0x511c68]
add esp, 4
mov eax, dword [esi + 0x78]
test eax, eax
je 0x405302
mov ecx, 2
cmp cx, word [esi + 0x90]
jae 0x405302
lea ecx, [eax + 0x50]
jmp 0x40531a
mov ecx, dword [esi]
mov edx, 0x19
mov dword [ecx + 0x40], 0x19
call fcn.0041c770
mov ecx, 0x501150
call fcn.0043f1f0
mov edx, dword [esi + 0x24]
mov ecx, eax
mov eax, dword [esi]
mov dword [ebp - 0x54], ecx
cmp byte [eax + 0x57], 0
jne 0x405337
test edx, edx
jne 0x405337
xor eax, eax
jmp 0x405341
mov ecx, eax
call fcn.004193c0
mov ecx, dword [ebp - 0x54]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x40535a
push eax
call dword [0x511c70]
mov ecx, dword [ebp - 0x54]
add esp, 4
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x70], ecx
inc edi
cmp edi, esi
jl 0x405280
movq xmm1, qword [ebp - 0x70]
movups xmm0, xmmword [ebp - 0x80]
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x1c]
cmp edi, dword [ebp - 0x5c]
je 0x405390
movups xmmword [edi], xmm0
movq qword [edi + 0x10], xmm1
add edi, 0x18
mov dword [ebp - 0x1c], edi
jmp 0x405240
lea eax, [ebp - 0x80]
push eax
push edi
lea ecx, [ebp - 0x20]
call fcn.00410be0
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x40]
jmp 0x405240
cmp eax, 0x65
jne 0x405240
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x44], esi
push dword [ebp - 0x3c]
call fcn.00445930
mov ecx, dword [ebp - 0x4c]
add esp, 4
xor edx, edx
call fcn.004c75b0
cmp esi, edi
je 0x40551b
lea eax, [ebx + 0x20]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040c430
xorps xmm0, xmm0
mov byte [ebp - 4], 4
movlpd qword [ebp - 0x58], xmm0
mov eax, esi
mov esi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
movlpd qword [ebp - 0x50], xmm0
mov edx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
movlpd qword [ebp - 0x68], xmm0
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x40], edx
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x54]
nop dword [eax]
cmp dword [eax + 0x10], 1
jne 0x405450
test esi, esi
jl 0x405449
jg 0x405430
test ecx, ecx
je 0x405449
cmp edi, esi
jl 0x405449
jg 0x40543a
cmp edx, ecx
jbe 0x405449
sub edx, ecx
mov ecx, edi
sbb ecx, esi
add dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x54]
adc dword [ebp - 0x40], ecx
mov ecx, dword [eax]
mov esi, dword [eax + 4]
jmp 0x405458
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov dword [ebp - 0x54], edx
addsd xmm0, qword [eax + 8]
add eax, 0x18
cmp eax, dword [ebp - 0x1c]
jne 0x405420
movsd qword [ebp - 0x68], xmm0
cmp edi, esi
jl 0x40548a
jg 0x405474
cmp edx, ecx
jbe 0x40548a
test esi, esi
jl 0x40548a
jg 0x40547e
test ecx, ecx
je 0x40548a
sub edx, ecx
sbb edi, esi
add dword [ebp - 0x4c], edx
adc dword [ebp - 0x40], edi
jmp 0x4054c2
push 0x505100
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
sub esp, 0x18
xorps xmm0, xmm0
mov ecx, esp
push 0x10
movups xmmword [ecx], xmm0
push str.Power_Date_Error
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
call fcn.0040f410
call fcn.00409150
add esp, 0x18
sub esp, 0x18
lea eax, [ebp - 0x80]
mov ecx, esp
push eax
call fcn.0040c430
push dword [ebp - 0x40]
mov edx, dword [ebp - 0x4c]
movsd xmm2, qword [ebp - 0x68]
push edx
call fcn.00405650
mov ecx, dword [ebp - 0x6c]
add esp, 0x20
cmp ecx, 0xf
jbe 0x405518
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40550e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405641
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x40554f
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405545
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405646
push ecx
push edx
call fcn.004d2f2b
add esp, 8
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0xf
mov byte [ebp - 0x38], 0
test esi, esi
je 0x4055a9
mov ecx, dword [ebp - 0x5c]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x40559f
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405646
push ecx
push esi
call fcn.004d2f2b
add esp, 8
mov ecx, dword [ebx + 0x1c]
cmp ecx, 7
jbe 0x4055df
mov edx, dword [ebx + 8]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4055d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405646
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, 0xf
jbe 0x405623
mov edx, dword [ebx + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405619
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405646
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
int3