Function at 0x52eafc
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x52eb04
push ecx
push ebx
push esi
push edi
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x52f123
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
jge 0x52eb3a
push 0x52f134
call sub.KERNEL32.DLL_OutputDebugStringW
jmp 0x52f100
lea ecx, [ebp - 0xc]
xor edx, edx
mov eax, ebx
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
call fcn.0040e1f8
test al, al
je 0x52f100
mov ecx, dword [0x5d8850]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4aa5bc]
call fcn.004abb9c
mov edi, eax
mov dword [esi + 0x24], edi
mov edx, dword [esi + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x52f170
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov ecx, dword [0x5d8850]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x511ccc]
call fcn.00511df0
mov edi, eax
mov dword [esi + 0x14], edi
mov edx, dword [esi + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x52f198
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x64]
mov edx, 0x52f1c0
call fcn.0048a0d0
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x64]
xor edx, edx
call fcn.00489db8
mov ecx, dword [0x5d8850]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x511ccc]
call fcn.00511df0
mov edi, eax
mov dword [esi + 0x18], edi
mov edx, dword [esi + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x52f1dc
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x64]
mov edx, 0x52f1c0
call fcn.0048a0d0
mov eax, dword [esi + 0x18]
mov eax, dword [eax + 0x64]
xor edx, edx
call fcn.00489db8
mov ecx, dword [0x5d8850]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x50056c]
call fcn.00503cc4
mov edi, eax
mov dword [esi + 0x1c], edi
mov edx, dword [esi + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x52f200
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, 0xf1f1f1
mov eax, dword [esi + 0x1c]
call fcn.004d9b28
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x64]
xor edx, edx
call fcn.00489db8
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x304]
call fcn.00503a30
mov ebx, eax
mov eax, dword [esi + 0x30]
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x34]
mov dword [ebx + 0x2c], eax
xor edx, edx
mov eax, dword [ebx + 0x1c]
call fcn.00489db8
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x64]
call fcn.0048a12c
mov edx, eax
mov eax, dword [ebx + 0x1c]
call fcn.0048a148
mov ecx, dword [0x5d8850]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x4a133c]
call fcn.004a8010
mov edi, eax
mov dword [esi + 0x20], edi
mov edx, dword [esi + 8]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, 0x52f230
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x64]
mov edx, 0x52f1c0
call fcn.0048a0d0
mov eax, dword [esi + 0x20]
mov eax, dword [eax + 0x64]
xor edx, edx
call fcn.00489db8
movzx eax, byte [ebp - 8]
test al, al
jne 0x52eda6
lea eax, [ebp - 4]
mov edx, 0x52f258
call fcn.00406cb8
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x52f280
mov edx, 0x52f2ec
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x10]
mov eax, dword [esi + 0x14]
call fcn.004d99a8
lea eax, [ebp - 0x14]
push eax
mov ecx, 0x52f310
mov edx, 0x52f454
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x14]
mov eax, dword [esi + 0x18]
call fcn.004d99a8
lea eax, [ebp - 0x18]
push eax
mov ecx, 0x52f310
mov edx, 0x52f454
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x18]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2b0]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52f474
mov edx, 0x52f4e0
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x1c]
mov eax, dword [esi + 0x20]
call fcn.004d99a8
lea eax, [esi + 0x28]
mov edx, 0x52f500
call fcn.00406c64
jmp 0x52efa8
cmp al, 2
jne 0x52ee53
lea eax, [ebp - 4]
mov edx, 0x52f548
call fcn.00406cb8
lea eax, [ebp - 0x20]
push eax
mov ecx, 0x52f56c
mov edx, 0x52f5c8
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x20]
mov eax, dword [esi + 0x14]
call fcn.004d99a8
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x52f5e8
mov edx, 0x52f740
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x24]
mov eax, dword [esi + 0x18]
call fcn.004d99a8
lea eax, [ebp - 0x28]
push eax
mov ecx, 0x52f5e8
mov edx, 0x52f740
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x28]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2b0]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0x2c]
push eax
mov ecx, 0x52f760
mov edx, 0x52f7c0
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x20]
call fcn.004d99a8
lea eax, [esi + 0x28]
mov edx, 0x52f7e0
call fcn.00406c64
jmp 0x52efa8
cmp al, 1
jne 0x52ef00
lea eax, [ebp - 4]
mov edx, 0x52f820
call fcn.00406cb8
lea eax, [ebp - 0x30]
push eax
mov ecx, 0x52f848
mov edx, 0x52f8b4
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x30]
mov eax, dword [esi + 0x14]
call fcn.004d99a8
lea eax, [ebp - 0x34]
push eax
mov ecx, 0x52f8d8
mov edx, 0x52fa24
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x18]
call fcn.004d99a8
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x52f8d8
mov edx, 0x52fa24
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x38]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2b0]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x52fa44
mov edx, 0x52faa8
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x3c]
mov eax, dword [esi + 0x20]
call fcn.004d99a8
lea eax, [esi + 0x28]
mov edx, 0x52fac8
call fcn.00406c64
jmp 0x52efa8
cmp al, 3
jne 0x52efa8
lea eax, [ebp - 4]
mov edx, 0x52fb14
call fcn.00406cb8
lea eax, [ebp - 0x40]
push eax
mov ecx, 0x52fb38
mov edx, 0x52fb94
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x40]
mov eax, dword [esi + 0x14]
call fcn.004d99a8
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x52fbb4
mov edx, 0x52fcf0
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x44]
mov eax, dword [esi + 0x18]
call fcn.004d99a8
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x52fbb4
mov edx, 0x52fcf0
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x48]
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2b0]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea eax, [ebp - 0x4c]
push eax
mov ecx, 0x52fd10
mov edx, 0x52fd64
mov eax, esi
call fcn.0052eac4
mov edx, dword [ebp - 0x4c]
mov eax, dword [esi + 0x20]
call fcn.004d99a8
lea eax, [esi + 0x28]
mov edx, 0x52fd84
call fcn.00406c64
mov ecx, dword [esi + 0x24]
mov edx, dword [ebp - 4]
mov eax, esi
call fcn.0052e7cc
mov dl, 1
mov eax, dword [esi + 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov edx, 0x23
mov eax, dword [esi + 0x24]
call fcn.004d8f98
mov edx, 0xb4
mov eax, dword [esi + 0x24]
call fcn.004d8fcc
mov edx, 0x50
mov eax, dword [esi + 0x14]
call fcn.004d8f98
mov edx, 0xa0
mov eax, dword [esi + 0x14]
call fcn.004d8fcc
xor edx, edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov dl, 1
mov eax, dword [esi + 0x14]
call fcn.004a358c
mov edx, 0x190
mov eax, dword [esi + 0x14]
call fcn.004d9000
mov edx, 0xf
mov eax, dword [esi + 0x14]
call fcn.004d9034
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x40]
mov eax, dword [esi + 0x18]
call fcn.004d8f98
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x44]
add edx, dword [eax + 0x4c]
add edx, 5
mov eax, dword [esi + 0x18]
call fcn.004d8fcc
mov dl, 1
mov eax, dword [esi + 0x18]
call fcn.004a358c
mov edx, 0x1f4
mov eax, dword [esi + 0x18]
call fcn.004d9000
mov edx, 0x1e
mov eax, dword [esi + 0x18]
call fcn.004d9034
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x40]
mov eax, dword [esi + 0x1c]
call fcn.004d8f98
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x44]
add edx, dword [eax + 0x4c]
add edx, 5
mov eax, dword [esi + 0x1c]
call fcn.004d8fcc
mov dl, 1
mov eax, dword [esi + 0x1c]
call fcn.004a4a3c
mov edx, 0x1f4
mov eax, dword [esi + 0x1c]
call fcn.004d9000
mov edx, 0x1e
mov eax, dword [esi + 0x1c]
call fcn.004d9034
mov eax, dword [esi + 0x14]
mov edx, dword [eax + 0x40]
mov eax, dword [esi + 0x20]
call fcn.004d8f98
mov eax, dword [esi + 0x18]
mov edx, dword [eax + 0x44]
add edx, dword [eax + 0x4c]
add edx, 5
mov eax, dword [esi + 0x20]
call fcn.004d8fcc
mov dl, 1
mov eax, dword [esi + 0x20]
call fcn.004a70c0
mov edx, 0x190
mov eax, dword [esi + 0x20]
call fcn.004d9000
mov edx, 0xf
mov eax, dword [esi + 0x20]
call fcn.004d9034
mov dl, 1
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
call dword [ecx + 0xe0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52f12a
lea eax, [ebp - 0x4c]
mov edx, 0x11
call fcn.00406c5c
lea eax, [ebp - 4]
call fcn.00406c54
ret