Function at 0x430ca0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x4a4cf0]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x4a6781], 0
je 0x431395
mov eax, dword [ebp + 8]
cmp eax, 0x26
jne 0x430d2a
cmp dword [0x4a92a0], 0
jne 0x431395
cmp dword [0x4a92a4], 0
jne 0x431395
mov eax, dword [0x4a67a0]
dec eax
mov dword [0x4a67a0], eax
jns 0x430cf6
xor eax, eax
mov dword [0x4a67a0], eax
mov ecx, dword [eax*8 + 0x4a48bc]
mov edx, dword [0x4b8580]
mov dword [edx + 0xc0], ecx
mov eax, dword [eax*8 + 0x4a48c0]
mov ecx, dword [0x4b8580]
mov dword [ecx + 0xc4], eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret
cmp eax, 0x28
jne 0x430d96
cmp dword [0x4a92a0], 0
jne 0x431395
cmp dword [0x4a92a4], 0
jne 0x431395
mov eax, dword [0x4a67a0]
inc eax
mov dword [0x4a67a0], eax
cmp eax, 4
jle 0x430d63
mov eax, 4
mov dword [0x4a67a0], eax
mov edx, dword [eax*8 + 0x4a48bc]
mov ecx, dword [0x4b8580]
mov dword [ecx + 0xc0], edx
mov edx, dword [eax*8 + 0x4a48c0]
mov eax, dword [0x4b8580]
mov dword [eax + 0xc4], edx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret
cmp eax, 0xd
jne 0x431395
cmp dword [0x4a92a0], 0
push esi
push edi
lea esi, [eax - 0xc]
jne 0x430dd5
cmp dword [0x4a92a4], 0
jne 0x430dd5
mov eax, dword [0x4a67a0]
mov dword [0x4a92a0], eax
cmp eax, 3
jge 0x430dcb
mov dword [0x4a92a4], esi
call fcn.0040c3e0
call fcn.0042c170
mov ecx, dword [0x4a9be0]
cmp byte [ecx + 0xf4], 0
mov edi, dword [sym.imp.WINMM.dll_timeGetTime]
je 0x431278
cmp dword [0x4a3da8], 5
jne 0x43126d
mov eax, dword [0x4a94c4]
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
mov eax, dword [0x4b8408]
cmp byte [eax + 0xf4], 0
sete cl
mov byte [eax + 0xf4], cl
mov eax, dword [0x4b876c]
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
mov eax, dword [0x4a94c4]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9510]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8408]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8124]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b876c]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8584]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a94c4]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9514]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8408]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8128]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b876c]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8588]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a94c4]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9518]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8408]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b812c]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b876c]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b858c]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a94c4]
cmp byte [eax + 0xf4], 0
je 0x430f2f
mov ecx, dword [0x4a66dc]
push ecx
call fcn.0040ecb0
add esp, 4
mov edx, dword [0x4b8408]
cmp byte [edx + 0xf4], 0
je 0x430f4c
mov eax, dword [0x4a64dc]
push eax
call fcn.0040ee00
add esp, 4
mov ecx, dword [0x4b876c]
cmp byte [ecx + 0xf4], 0
je 0x430f6a
mov edx, dword [0x4a66f8]
push edx
call fcn.0040ef40
add esp, 4
mov eax, dword [0x4b81b8]
cmp byte [eax + 0xf4], 0
sete cl
mov byte [eax + 0xf4], cl
mov eax, dword [0x4b8510]
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
mov eax, dword [0x4a96fc]
cmp byte [eax + 0xf4], 0
sete cl
mov byte [eax + 0xf4], cl
mov eax, dword [0x4b8414]
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
mov eax, dword [0x4b8350]
cmp byte [eax + 0xf4], 0
sete cl
mov byte [eax + 0xf4], cl
mov eax, dword [0x4b8260]
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
mov eax, dword [0x4b81b8]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9bec]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8510]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8370]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a96fc]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a94c8]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8414]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b848c]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8350]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b85f0]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8260]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9544]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b81b8]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9bf0]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8510]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8374]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a96fc]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a94cc]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8414]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8490]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8350]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b85f4]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8260]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9548]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b81b8]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a9bf4]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8510]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8378]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4a96fc]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a94d0]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8414]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b8494]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8350]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4b85f8]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b8260]
movzx ecx, byte [eax + 0xf4]
mov edx, dword [0x4a954c]
mov byte [edx + 0xf4], cl
mov eax, dword [0x4b81b8]
cmp byte [eax + 0xf4], 0
je 0x4311c4
mov eax, 0x68db8bad
imul dword [0x4a66fc]
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
call fcn.0040f090
add esp, 4
mov edx, dword [0x4b8510]
cmp byte [edx + 0xf4], 0
je 0x4311f1
mov eax, 0x68db8bad
imul dword [0x4a6700]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.0040f1f0
add esp, 4
mov ecx, dword [0x4a96fc]
cmp byte [ecx + 0xf4], 0
je 0x43120f
mov edx, dword [0x4a6470]
push edx
call fcn.0040f610
add esp, 4
mov eax, dword [0x4b8414]
cmp byte [eax + 0xf4], 0
je 0x43122d
movzx ecx, byte [0x4a6705]
push ecx
call fcn.0040f750
add esp, 4
mov edx, dword [0x4b8350]
cmp byte [edx + 0xf4], 0
je 0x43124a
mov eax, dword [0x4a6474]
push eax
call fcn.0040f350
add esp, 4
mov ecx, dword [0x4b8510]
cmp byte [ecx + 0xf4], 0
je 0x43126d
mov edx, 0xa
sub edx, dword [0x4a6474]
push edx
call fcn.0040f4b0
add esp, 4
mov dword [0x4a3da8], esi
jmp 0x43138c
mov ecx, dword [0x4b8208]
mov al, byte [ecx + 0xf4]
test al, al
je 0x43138c
cmp dword [ecx + 0xa4], 0
jne 0x431327
call edi
sub eax, dword [0x4a9458]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
jns 0x4312b5
fadd dword [0x47afc8]
fmul qword [0x48ee00]
fcomp qword [0x47afd8]
fnstsw ax
test ah, 5
jp 0x4312d0
add dword [0x4a3dac], esi
jmp 0x4312d6
mov dword [0x4a3dac], esi
mov eax, dword [0x4a3dac]
push eax
lea ecx, [ebp - 0x204]
push str.g_nReturnCounter:__d_n
push ecx
call fcn.00409630
add esp, 0xc
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [0x4a3dac], 5
jne 0x43138c
mov eax, dword [0x4b86ac]
mov dword [0x4a3dac], esi
cmp byte [eax + 0xf4], 0
sete cl
mov byte [eax + 0xf4], cl
jmp 0x43138c
test al, al
je 0x43138c
cmp dword [ecx + 0xa4], esi
jne 0x43138c
call edi
sub eax, dword [0x4a9458]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
jns 0x43134f
fadd dword [0x47afc8]
fmul qword [0x48ee00]
fcomp qword [0x47afd8]
fnstsw ax
test ah, 5
jp 0x4313a3
add dword [0x4a3dac], esi
cmp dword [0x4a3dac], 5
jne 0x43138c
mov eax, dword [0x4b86ac]
mov dword [0x4a3dac], esi
cmp byte [eax + 0xf4], 0
sete dl
mov byte [eax + 0xf4], dl
call edi
pop edi
mov dword [0x4a9458], eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret
mov dword [0x4a3dac], esi
jmp 0x43138c