Function at 0x45bdac
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 8
push 0
push 0
dec ecx
jne 0x45bdb5
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.00406c24
xor eax, eax
push ebp
push 0x45c285
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4b5f49], 0
jne 0x45bdeb
call fcn.0045c494
cmp byte [0x4b5f48], 0
je 0x45c25d
mov eax, dword [0x4b743c]
cmp dword [eax], 2
je 0x45be15
mov eax, dword [ebp - 4]
call fcn.00407984
push eax
call sub.kernel32.dll_OutputDebugStringW
jmp 0x45c25d
lea eax, [ebp - 8]
call fcn.00406b40
call sub.kernel32.dll_GetCurrentThreadId_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x10]
call fcn.0041c250
lea eax, [ebp - 0x14]
call fcn.00406b40
cmp dword [0x4b5f70], 0
je 0x45be4f
lea ecx, [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4b5f70]
call fcn.0043f1b4
cmp byte [0x4bd1e1], 0
jne 0x45bf4e
push 0x4bd1f0
call sub.kernel32.dll_QueryPerformanceCounter_1
cmp dword [0x4bd1ec], 0
jne 0x45be82
cmp dword [0x4bd1e8], 0
jne 0x45be82
push 0x4bd1e8
call sub.kernel32.dll_QueryPerformanceFrequency
cmp dword [0x4bd1ec], 0
jne 0x45be92
cmp dword [0x4bd1e8], 0
je 0x45bee7
push dword [0x4bd1ec]
push dword [0x4bd1e8]
push 0
push 0x3e8
mov eax, dword [0x4bd1f0]
mov edx, dword [0x4bd1f4]
call fcn.004086d0
call fcn.004086f4
mov ebx, eax
push 0x45c2a4
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24]
call fcn.0041c250
push dword [ebp - 0x24]
push 0x45c2b8
lea eax, [ebp - 8]
mov edx, 3
call fcn.00407c50
push dword [ebp - 8]
push 0x45c2cc
lea edx, [ebp - 0x28]
mov eax, esi
call fcn.0041c228
push dword [ebp - 0x28]
push 0x45c2b8
lea eax, [ebp - 8]
mov edx, 4
call fcn.00407c50
push dword [ebp - 8]
push 0x45c2e0
push dword [ebp - 0x10]
push 0x45c2b8
lea eax, [ebp - 8]
mov edx, 4
call fcn.00407c50
cmp dword [ebp - 0x14], 0
je 0x45bf4e
push dword [ebp - 8]
push 0x45c2f4
push dword [ebp - 0x14]
push 0x45c2b8
lea eax, [ebp - 8]
mov edx, 4
call fcn.00407c50
cmp byte [0x4bd1e1], 1
jne 0x45bfd3
push 0x45c30c
push dword [0x4b5f60]
push 0x45c31c
push dword [0x4b5f5c]
push 0x45c32c
lea eax, [ebp - 8]
mov edx, 5
call fcn.00407c50
cmp dword [ebp - 0x14], 0
je 0x45bfa4
push dword [ebp - 8]
push 0x45c30c
push dword [ebp - 0x14]
push 0x45c32c
lea eax, [ebp - 8]
mov edx, 4
call fcn.00407c50
jmp 0x45bfc1
push dword [ebp - 8]
push 0x45c30c
push dword [ebp - 0x10]
push 0x45c32c
lea eax, [ebp - 8]
mov edx, 4
call fcn.00407c50
cmp esi, 2
jne 0x45bfd3
lea eax, [ebp - 8]
mov edx, 0x45c340
call fcn.00407b70
cmp byte [0x4bd1e1], 2
jne 0x45c014
cmp dword [ebp - 0x14], 0
je 0x45bffc
push dword [ebp - 8]
push dword [ebp - 0x14]
push 0x45c360
lea eax, [ebp - 8]
mov edx, 3
call fcn.00407c50
jmp 0x45c014
push dword [ebp - 8]
push dword [ebp - 0x10]
push 0x45c360
lea eax, [ebp - 8]
mov edx, 3
call fcn.00407c50
cmp byte [0x4b5f4a], 0
je 0x45c1e7
xor eax, eax
push ebp
push 0x45c1d6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
cmp eax, dword [0x4b5f50]
jge 0x45c1cc
cmp dword [0x4b5f6c], 0
jne 0x45c05a
xor ecx, ecx
mov dl, 1
mov eax, dword [0x45b7f8]
call fcn.0045b9b4
mov dword [0x4b5f6c], eax
mov edx, 0x2710
mov eax, dword [0x4b5f6c]
call fcn.0045bac4
test al, al
je 0x45c1c5
xor eax, eax
push ebp
push 0x45c1be
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4b5f58], 0
jne 0x45c141
cmp dword [0x4b5f4c], 0
jne 0x45c0b1
lea edx, [ebp - 0x2c]
xor eax, eax
call fcn.004048b0
mov edx, dword [ebp - 0x2c]
mov eax, 0x4b5f4c
mov ecx, 0x45c370
call fcn.00407bc8
mov dl, 1
mov eax, dword [0x45ab9c]
call fcn.0045b11c
mov dword [0x4b5f54], eax
mov eax, dword [0x4b5f54]
mov byte [eax + 0x12], 1
mov eax, dword [0x4b5f54]
mov byte [eax + 0x13], 1
mov eax, dword [0x4b5f54]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [0x4b5f54]
mov byte [eax + 0x14], 1
mov edx, dword [0x4b5f4c]
mov eax, dword [0x4b5f54]
mov ecx, dword [eax]
call dword [ecx + 0x38]
call fcn.0041f448
fstp qword [ebp - 0x20]
wait
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
lea edx, [ebp - 0x18]
mov eax, dword [0x4b72fc]
call fcn.00420380
push 0x45c388
push dword [ebp - 0x18]
push 0x45c3e4
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.00407c50
mov edx, dword [ebp - 0x30]
mov eax, dword [0x4b5f54]
mov ecx, dword [eax]
call dword [ecx + 8]
mov byte [0x4b5f58], 1
cmp byte [0x4b5f58], 0
je 0x45c1a6
call sub.kernel32.dll_GetTickCount_1
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x38]
call fcn.0041c250
push dword [ebp - 0x38]
push 0x45c410
call sub.kernel32.dll_GetCurrentProcessId
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x3c]
call fcn.0041c250
push dword [ebp - 0x3c]
push 0x45c2b8
push dword [ebp - 8]
push dword [ebp - 4]
lea eax, [ebp - 0x34]
mov edx, 6
call fcn.00407c50
mov edx, dword [ebp - 0x34]
mov eax, dword [0x4b5f54]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [0x4b5f54]
mov edx, dword [eax]
call dword [edx + 0x40]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45c1cc
mov eax, dword [0x4b5f6c]
call fcn.0045bae4
ret
mov byte [0x4b5f4a], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x45c1e7
mov edx, dword [ebp - 4]
mov eax, 0x45c428
call fcn.00407e24
mov ebx, eax
test ebx, ebx
jle 0x45c247
lea eax, [ebp - 0xc]
push eax
mov ecx, ebx
dec ecx
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00407d38
lea ecx, [ebx + 1]
lea eax, [ebp - 4]
mov edx, 1
call fcn.00407d80
lea eax, [ebp - 0x40]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00407bc8
mov eax, dword [ebp - 0x40]
call fcn.0045bc4c
mov edx, dword [ebp - 4]
mov eax, 0x45c428
call fcn.00407e24
mov ebx, eax
test ebx, ebx
jg 0x45c1fa
lea eax, [ebp - 0x44]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
call fcn.00407bc8
mov eax, dword [ebp - 0x44]
call fcn.0045bc4c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45c28c
lea eax, [ebp - 0x44]
mov edx, 9
call fcn.00406ba0
lea eax, [ebp - 0x18]
mov edx, 6
call fcn.00406ba0
ret