Function at 0x52a210
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1a
push 0
push 0
dec ecx
jne 0x52a218
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x52acf1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x52ad04
call sub.kernel32.dll_OutputDebugStringW
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x52ac6b
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp + 8], 0
jne 0x52a260
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
push 0x52ad30
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc3c]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x18]
call fcn.0040ca2c
lea eax, [ebp - 8]
mov edx, dword [ebp + 8]
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
lea edx, [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.00523dac
push 0x52ad5c
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebp - 4]
call fcn.0040cf58
test al, al
jne 0x52a2bd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
xor eax, eax
push ebp
push 0x52a6e7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x43c8f4]
call fcn.0043c9b8
mov dword [ebp - 0x34], eax
mov dl, 1
mov eax, dword [0x4228dc]
call fcn.00403dac
mov dword [ebp - 0x38], eax
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4370c8]
call fcn.00437444
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x5220c0]
call fcn.00403dac
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov dword [eax + 0xe4], edx
mov dword [eax + 0xe0], 0x52247c
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov dword [eax + 0xdc], edx
mov dword [eax + 0xd8], 0x5221b8
lea eax, [ebp - 0x44]
mov edx, dword [ebp + 8]
add edx, 0x200
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
mov eax, dword [ebp - 0x44]
call fcn.004facf4
test al, al
je 0x52a374
mov eax, dword [ebp - 0x2c]
add eax, 0x88
mov edx, dword [ebp + 8]
add edx, 0x200
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
jmp 0x52a399
lea edx, [ebp - 0x4c]
xor eax, eax
call fcn.00403408
mov eax, dword [ebp - 0x4c]
lea edx, [ebp - 0x48]
call fcn.0040d474
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x2c]
add eax, 0x88
call fcn.00405de0
mov eax, dword [ebp - 0x2c]
add eax, 0x8c
mov edx, 0x52ad94
call fcn.00405de0
xor eax, eax
push ebp
push 0x52a3d1
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x2c]
call fcn.00437518
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52a463
mov ecx, 0x52ae14
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
call fcn.00438594
push 0
push 0
mov eax, dword [ebp - 0x38]
call fcn.00427e48
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
call fcn.0043d2e0
push 0x52ae24
call sub.kernel32.dll_OutputDebugStringW
push 0x52ae5c
lea eax, [ebp - 0x54]
push eax
mov ecx, 0x52ae70
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
add eax, 0x864
call fcn.0040d8ec
push 0x52ae5c
lea eax, [ebp - 0x58]
push eax
mov ecx, 0x52aea0
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 8]
add eax, 0x8ca
call fcn.0040d8ec
push 0x52aec4
lea eax, [ebp - 0x5c]
push eax
mov ecx, 0x52aee4
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp + 8]
add eax, 0xaca
call fcn.0040d8ec
push 0
mov ecx, 0x52af08
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx + 0x10]
neg al
sbb eax, eax
mov edx, dword [ebp + 8]
mov dword [edx + 0xaf4], eax
push 0x52af24
lea eax, [ebp - 0x60]
push eax
mov ecx, 0x52af34
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp + 8]
add eax, 0xb5e
call fcn.0040d8ec
xor eax, eax
push ebp
push 0x52a5e1
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x52ae5c
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52af4c
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov eax, dword [ebp - 0x1c]
mov edx, 0x52ae5c
call fcn.0040656c
je 0x52a5c5
mov eax, dword [ebp - 0x1c]
call fcn.00529c50
fstp qword [ebp - 0x40]
wait
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
lea eax, [ebp - 0x24]
mov edx, 0x52af68
call fcn.00410d20
mov eax, dword [ebp + 8]
add eax, 0xaf8
mov edx, dword [ebp - 0x24]
call fcn.0040d8ec
jmp 0x52a5d7
mov eax, dword [ebp + 8]
add eax, 0xaf8
mov edx, 0x52ae5c
call fcn.0040d8ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52a5fd
push 0x52af90
call sub.kernel32.dll_OutputDebugStringW
push 0
mov ecx, 0x52afc8
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx + 0x10]
neg al
sbb eax, eax
mov edx, dword [ebp + 8]
mov dword [edx + 0xb6c], eax
push 0x52ae5c
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x52afe8
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp + 8]
add eax, 0xb70
call fcn.0040d8ec
push 0
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x52b010
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
add eax, 0xbd6
call fcn.0040d8ec
push 0
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x52b03c
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp + 8]
add eax, 0xc44
call fcn.0040d8ec
push 0xffffffffffffffff
mov ecx, 0x52b064
mov edx, 0x52ae88
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [ebp + 8]
mov dword [edx + 0xc40], eax
mov eax, dword [ebp - 0x38]
call fcn.00403ddc
mov eax, dword [ebp - 0x34]
call fcn.00403ddc
mov eax, dword [ebp - 0x2c]
call fcn.00403ddc
mov eax, dword [ebp - 0x30]
call fcn.00403ddc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52a72f
lea eax, [ebp - 0x74]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0x74]
mov edx, 0x52ae5c
call fcn.0040656c
jne 0x52a75e
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x52ac61
lea eax, [ebp - 0x78]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0x78]
call fcn.00521a68
test al, al
jne 0x52a78c
mov dword [ebp - 0x28], 0xffffffff
jmp 0x52ac61
mov eax, dword [ebp + 8]
add eax, 0x864
push eax
call fcn.005245d8
dec eax
jne 0x52a7eb
push 1
call sym.RegisterIdr.dll_CheckTrialInstalled
test eax, eax
jne 0x52a7ba
xor eax, eax
mov dword [ebp - 0x28], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
mov eax, dword [ebp + 8]
call fcn.00529ec8
mov eax, dword [ebp + 8]
call fcn.004fac10
test eax, eax
jl 0x52a7d7
mov dword [ebp - 0x28], 4
jmp 0x52a7de
mov dword [ebp - 0x28], 0xfffffff9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
lea eax, [ebp - 0x14]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
lea eax, [ebp - 0x80]
mov edx, dword [ebp - 0x14]
call fcn.00406044
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x7c]
mov edx, 2
call fcn.0040a37c
mov edx, dword [ebp - 0x7c]
lea eax, [ebp - 0x20]
call fcn.00406030
lea eax, [ebp - 0x84]
mov ecx, dword [ebp - 0x20]
mov edx, 0x52b0a8
call fcn.0040629c
mov eax, dword [ebp - 0x84]
call fcn.00405e6c
push eax
call sub.kernel32.dll_OutputDebugStringW
lea eax, [ebp - 0x88]
mov ecx, dword [ebp - 0x18]
mov edx, 0x52b0c0
call fcn.0040629c
mov eax, dword [ebp - 0x88]
call fcn.00405e6c
push eax
call sub.kernel32.dll_OutputDebugStringW
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
call fcn.00523780
test al, al
jne 0x52a892
mov dword [ebp - 0x28], 0xffffffff
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
mov eax, dword [ebp - 0x14]
call fcn.00522ff0
test al, al
jne 0x52a8b2
mov dword [ebp - 0x28], 0xffffffff
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
push 0x52b0ec
call sub.kernel32.dll_OutputDebugStringW
lea eax, [ebp - 0x8c]
mov edx, dword [ebp + 8]
add edx, 0xaca
mov ecx, 0x15
call fcn.00405fc8
mov eax, dword [ebp - 0x8c]
mov edx, 0x52b124
call fcn.0040656c
jne 0x52a8f3
mov dword [ebp - 0x28], 0xffffffff
jmp 0x52ac61
lea eax, [ebp - 0x90]
call fcn.00520ffc
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0xc]
call fcn.0040c0f8
push 0x52b134
call sub.kernel32.dll_OutputDebugStringW
lea eax, [ebp - 0x94]
call fcn.0052110c
mov eax, dword [ebp - 0x94]
lea edx, [ebp - 0x10]
call fcn.0040c0f8
push 0x52b160
call sub.kernel32.dll_OutputDebugStringW
push 0x52b198
push dword [ebp - 0xc]
push 0x52b1dc
push dword [ebp - 0x10]
lea eax, [ebp - 0x98]
mov edx, 4
call fcn.00406380
mov eax, dword [ebp - 0x98]
call fcn.00405e6c
push eax
call sub.kernel32.dll_OutputDebugStringW
lea eax, [ebp - 0x9c]
mov edx, dword [ebp + 8]
add edx, 0x8ca
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
mov eax, dword [ebp - 0x9c]
mov edx, 0x52ae5c
call fcn.0040656c
je 0x52a9f7
lea eax, [ebp - 0xa0]
mov edx, dword [ebp + 8]
add edx, 0x8ca
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xc]
call fcn.0040688c
test eax, eax
jne 0x52a9f7
lea eax, [ebp - 0xa4]
mov edx, dword [ebp + 8]
add edx, 0x8ca
mov ecx, pe_nt_image_headers32
call fcn.00405fc8
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x10]
call fcn.0040688c
test eax, eax
jne 0x52a9f7
mov dword [ebp - 0x28], 0xfffffffb
jmp 0x52ac61
mov eax, dword [ebp + 8]
cmp dword [eax + 0xaf4], 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x52aa65
mov eax, dword [ebp + 8]
cmp dword [eax + 0xb6c], 1
sbb eax, eax
inc eax
cmp al, 1
jne 0x52aa25
mov dword [ebp - 0x28], 0xfffffffd
jmp 0x52ac61
lea eax, [ebp - 0xa8]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xa8]
call fcn.00523a24
cmp al, 1
jne 0x52aa59
mov dword [ebp - 0x28], 3
jmp 0x52ac61
mov dword [ebp - 0x28], 0xfffffffe
jmp 0x52ac61
lea eax, [ebp - 0xac]
mov edx, dword [ebp + 8]
add edx, 0xaf8
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xac]
mov edx, 0x52ae5c
call fcn.0040656c
je 0x52aac3
lea eax, [ebp - 0xb4]
mov edx, dword [ebp + 8]
add edx, 0xaf8
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xb4]
lea edx, [ebp - 0xb0]
call fcn.0040c0f8
cmp dword [ebp - 0xb0], 0
jne 0x52ab37
lea eax, [ebp - 0xb8]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xb8]
call fcn.0052397c
cmp al, 1
jne 0x52aaf7
mov dword [ebp - 0x28], 2
jmp 0x52ac61
lea eax, [ebp - 0xbc]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xbc]
call fcn.00523a24
cmp al, 1
jne 0x52ab2b
mov dword [ebp - 0x28], 3
jmp 0x52ac61
mov dword [ebp - 0x28], 1
jmp 0x52ac61
lea eax, [ebp - 0x1c]
mov edx, dword [ebp + 8]
add edx, 0xaf8
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0x1c]
call fcn.00529c50
fstp qword [ebp - 0x40]
wait
xor eax, eax
push ebp
push 0x52ac50
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push ebp
lea eax, [ebp - 0xc0]
mov edx, dword [ebp + 8]
add edx, 0xbd6
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xc0]
call fcn.0052a0fc
pop ecx
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.00417cc4
cmp al, 0xff
jne 0x52abdd
lea eax, [ebp - 0xc4]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xc4]
call fcn.00523a24
cmp al, 1
jne 0x52abd4
mov dword [ebp - 0x28], 3
jmp 0x52ac46
mov dword [ebp - 0x28], 0xfffffffe
jmp 0x52ac46
lea eax, [ebp - 0xc8]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xc8]
call fcn.0052397c
cmp al, 1
jne 0x52ac0e
mov dword [ebp - 0x28], 2
jmp 0x52ac46
lea eax, [ebp - 0xcc]
mov edx, dword [ebp + 8]
add edx, 0x864
mov ecx, 0x33
call fcn.00405fc8
mov eax, dword [ebp - 0xcc]
call fcn.00523a24
cmp al, 1
jne 0x52ac3f
mov dword [ebp - 0x28], 3
jmp 0x52ac46
mov dword [ebp - 0x28], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52ac61
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x52acac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52acf8
lea eax, [ebp - 0xd0]
mov edx, 0x14
call fcn.00405dd8
lea eax, [ebp - 0x80]
mov edx, 2
call fcn.00405a14
lea eax, [ebp - 0x78]
mov edx, 0xe
call fcn.00405dd8
lea eax, [ebp - 0x24]
mov edx, 9
call fcn.00405dd8
ret