Function at 0x523090
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x18
push 0
push 0
dec ecx
jne 0x523099
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
mov edx, dword [0x50ad94]
call fcn.00405e14
xor eax, eax
push ebp
push 0x523a18
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 4
call fcn.00522ef8
test al, al
je 0x523106
lea ecx, [ebp - 0x54]
mov edx, 5
mov eax, dword [0x58d174]
call fcn.0050c9b0
test al, al
je 0x523106
mov eax, dword [0x58d174]
call fcn.0050b9cc
push 0xc8
call sub.kernel32.dll_Sleep_2
jmp 0x5239ec
mov dl, 1
mov eax, dword [0x41b508]
call fcn.004041b0
mov dword [ebp - 0x20], eax
xor eax, eax
push ebp
push 0x5234d7
push dword fs:[eax]
mov dword fs:[eax], esp
test bl, bl
je 0x523190
lea edx, [ebp - 0x20]
mov eax, dword [0x58d174]
call fcn.0050c5bc
jmp 0x523187
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0041dea4
mov edi, eax
lea ecx, [ebp - 0x1c]
mov edx, dword [edi]
mov eax, dword [ebp - 4]
call fcn.005170b8
or ecx, 0xffffffff
lea edx, [ebp - 0x1c]
mov eax, dword [0x58d178]
call fcn.0051fcb8
test al, al
jne 0x523171
mov eax, edi
call fcn.00522f54
push 0x14
call sub.kernel32.dll_Sleep_2
mov edx, 0x34
mov eax, edi
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0041dd98
mov eax, dword [ebp - 0x20]
cmp dword [eax + 8], 0
jg 0x523136
push ebp
mov eax, dword [ebp - 0x20]
call fcn.00522fb4
pop ecx
jmp 0x5234b4
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0041dea4
mov edi, eax
cmp esi, 0xffffffff
jle 0x523201
cmp esi, dword [edi + 4]
je 0x5231d0
mov edx, 0x34
mov eax, edi
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0041dd98
jmp 0x5234b4
lea ecx, [ebp - 0x1c]
mov edx, dword [edi]
mov eax, dword [ebp - 4]
call fcn.005170b8
lea eax, [ebp - 0x8c]
mov ecx, dword [ebp - 0x18]
mov edx, 0x523a30
call fcn.004054c0
mov eax, dword [ebp - 0x8c]
call fcn.00405638
push eax
call sub.kernel32.dll_OutputDebugStringA
lea ecx, [ebp - 0x1c]
mov edx, dword [edi]
mov eax, dword [ebp - 4]
call fcn.005170b8
push 0
mov edx, edi
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0051bb40
test al, al
je 0x52323f
test bl, bl
je 0x52349e
mov eax, edi
call fcn.00522f54
push 0xc8
call sub.kernel32.dll_Sleep_2
jmp 0x52349e
push 1
mov edx, edi
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0051bb40
test al, al
je 0x523270
test bl, bl
je 0x52349e
mov eax, edi
call fcn.00522f54
push 0xc8
call sub.kernel32.dll_Sleep_2
jmp 0x52349e
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5d0], 0
jne 0x523295
mov eax, dword [0x58d174]
call fcn.0050e874
movzx edx, byte [ebp - 7]
sub edx, 0xa
cmp eax, edx
jge 0x5232db
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
dec eax
sub eax, 0xc7
jae 0x52349e
mov eax, dword [0x58d174]
call fcn.0050e874
cdq
push edx
push eax
mov eax, dword [edi + 0x24]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x5232d3
cmp eax, dword [esp]
pop edx
pop eax
ja 0x52349e
jmp 0x5232db
pop edx
pop eax
jg 0x52349e
push 0x523a40
push dword [ebp - 0x18]
push 0x523a58
lea edx, [ebp - 0x94]
movzx eax, byte [ebp - 0xa]
call fcn.00409fe0
push dword [ebp - 0x94]
push 0x523a58
lea edx, [ebp - 0x98]
movzx eax, byte [ebp - 9]
call fcn.00409fe0
push dword [ebp - 0x98]
push 0x523a64
mov eax, dword [0x58d174]
call fcn.0050e8f4
lea edx, [ebp - 0x9c]
call fcn.00409fe0
push dword [ebp - 0x9c]
push 0x523a64
mov eax, dword [0x58d174]
call fcn.0050ef00
lea edx, [ebp - 0xa0]
call fcn.00409fe0
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
mov edx, 0xa
call fcn.0040553c
mov eax, dword [ebp - 0x90]
call fcn.00405638
push eax
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [0x58d174]
call fcn.0050e8f4
movzx edx, byte [ebp - 0xa]
cmp eax, edx
jl 0x52339c
mov eax, dword [0x58d174]
call fcn.0050ef00
movzx edx, byte [ebp - 9]
cmp eax, edx
jge 0x5233be
mov eax, 5
call fcn.00522ef8
test al, al
je 0x5233be
mov eax, dword [0x58d174]
call fcn.0050b9cc
push 0xc8
call sub.kernel32.dll_Sleep_2
movzx eax, byte [ebp - 0x1a]
cmp eax, 5
ja case.0x5233cb.0
jmp dword [eax*4 + 0x5233d2]
mov edx, dword [edi + 4]
mov ecx, 4
mov eax, dword [0x58d174]
call fcn.0050f2cc
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x58d174]
call fcn.00510ecc
jmp case.0x5233cb.0
mov edx, dword [edi + 4]
xor ecx, ecx
mov eax, dword [0x58d174]
call fcn.0050f2cc
jmp case.0x5233cb.0
mov edx, dword [edi + 4]
mov ecx, 1
mov eax, dword [0x58d174]
call fcn.0050f2cc
jmp case.0x5233cb.0
mov edx, dword [edi + 4]
mov ecx, 8
mov eax, dword [0x58d174]
call fcn.0050f2cc
jmp case.0x5233cb.0
mov edx, dword [edi + 4]
mov ecx, 9
mov eax, dword [0x58d174]
call fcn.0050f2cc
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, 4
call fcn.00522ef8
test al, al
je 0x523489
mov eax, dword [0x58d174]
call fcn.0050b9cc
push 0xc8
call sub.kernel32.dll_Sleep_2
test bl, bl
je 0x52349e
mov eax, edi
call fcn.00522f54
push 0xc8
call sub.kernel32.dll_Sleep_2
mov edx, 0x34
mov eax, edi
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0041dd98
mov eax, dword [ebp - 0x20]
cmp dword [eax + 8], 0
jg 0x52319f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5234de
mov eax, dword [ebp - 0x20]
call fcn.004041e0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523a1f
lea eax, [ebp - 0xc4]
mov edx, 0xf
call fcn.004051cc
lea eax, [ebp - 0x1c]
mov edx, dword [0x50ad94]
call fcn.00405ee4
ret