Function at 0x538364
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
mov edi, 0x557de8
xor eax, eax
push ebp
push 0x5385e0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [edi]
cmp dword [eax + 0x38ac], 0
je 0x5383aa
mov eax, dword [edi]
mov eax, dword [eax + 0x38ac]
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x5383b9
cmp eax, 0
jne 0x5383b9
mov eax, dword [edi]
cmp dword [eax + 0x38a8], 0
je 0x5385ca
cmp esi, 1
jge 0x5383c5
mov esi, 1
jmp 0x5383d2
cmp esi, 0x258
jle 0x5383d2
mov esi, 0x258
mov eax, dword [edi]
mov eax, dword [eax + 0x389c]
imul esi
mov ecx, 0x64
cdq
idiv ecx
mov dword [ebx + 0x40], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x38a0]
imul esi
mov ecx, 0x64
cdq
idiv ecx
mov dword [ebx + 0x44], eax
mov eax, dword [edi]
mov dword [eax + 0x3898], esi
xor eax, eax
mov dword [ebx + 0x5c], eax
mov edx, esi
mov eax, ebx
call fcn.00537fd4
test eax, eax
je 0x5385ca
xor eax, eax
mov dword [ebx + 0x58], eax
mov eax, dword [edi]
cmp dword [eax + 0x38d0], 0
je 0x538571
mov eax, dword [edi]
cmp dword [eax + 0x388c], 0
jne 0x538571
mov eax, ebx
call fcn.00538dcc
cmp dword [ebx + 0x68], 0
je 0x538451
push 0x1e
call sub.kernel32.dll_Sleep_2
mov edx, esi
mov eax, ebx
call fcn.00537fd4
test eax, eax
je 0x5385ca
lea eax, [ebp - 4]
push eax
mov dword [ebp - 0x10], esi
fild dword [ebp - 0x10]
fdiv dword [0x5385f0]
fstp xword [ebp - 0x1c]
wait
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 3
lea edx, [ebp - 0xc]
xor ecx, ecx
mov eax, 0x538600
call fcn.0040dda4
mov eax, dword [ebp - 4]
call fcn.00405bcc
push eax
call sub.kernel32.dll_OutputDebugStringW
cmp esi, 0x64
jle 0x5384c7
lea eax, [ebx + 0x4c]
push eax
lea eax, [ebx + 0x48]
push eax
push 0x3ff00000
push 0
mov eax, dword [edi]
mov eax, dword [eax + 0x38d0]
push eax
mov eax, dword [edi]
call dword [eax + 0x5c4]
add esp, 0x14
jmp 0x538502
lea eax, [ebx + 0x4c]
push eax
lea eax, [ebx + 0x48]
push eax
mov dword [ebp - 0x10], esi
fild dword [ebp - 0x10]
fdiv dword [0x5385f0]
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [edi]
mov eax, dword [eax + 0x38d0]
push eax
mov eax, dword [edi]
call dword [eax + 0x5c4]
add esp, 0x14
mov edx, dword [ebx + 0x48]
mov dword [ebx + 0x40], edx
mov edx, dword [ebx + 0x4c]
mov dword [ebx + 0x44], edx
test eax, eax
je 0x538515
push 0x538670
call sub.kernel32.dll_OutputDebugStringW
jmp 0x5385ca
push 0x5386bc
call sub.kernel32.dll_OutputDebugStringW
mov edx, esi
mov eax, ebx
call fcn.00537fd4
test eax, eax
je 0x5385ca
push 0x538704
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [edi]
mov eax, dword [eax + 0x38d0]
push eax
mov eax, dword [edi]
call dword [eax + 0x5c0]
pop ecx
mov dword [ebx + 0x58], eax
push 0x538760
call sub.kernel32.dll_OutputDebugStringW
cmp dword [ebx + 0x58], 0
jne 0x53856b
push 0x5387b8
call sub.kernel32.dll_OutputDebugStringW
jmp 0x5385ca
cmp dword [ebx + 0x58], 0
je 0x5385ca
mov edx, esi
mov eax, ebx
call fcn.00537fd4
test eax, eax
je 0x5385ca
mov edx, esi
mov eax, ebx
call fcn.00537fd4
test eax, eax
je 0x5385ca
mov eax, dword [edi]
cmp dword [eax + 0x38a8], 0
jne 0x5385bd
mov eax, dword [edi]
cmp dword [eax + 0x388c], 0
jne 0x5385b0
push ebx
push 0x538888
mov eax, ebx
call fcn.0042d35c
jmp 0x5385bd
push ebx
push 0x5387f8
mov eax, ebx
call fcn.0042d35c
push ebx
push 0x5387fc
mov eax, ebx
call fcn.0042d35c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5385e7
lea eax, [ebp - 4]
call fcn.00405b30
ret