Function at 0x4059a6
Capabilities:
Print debug messages

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0x28]
push ebx
push esi
xor esi, esi
mov dword [ebp - 4], edx
mov word [eax], si
xor ebx, ebx
mov eax, dword [ebp + 0x30]
mov esi, dword [ebp + 0x1c]
push edi
mov dword [ebp - 8], ecx
mov edi, ebx
mov byte [eax], bl
mov eax, dword [ebp + 0x18]
sub eax, ebx
je 0x405a17
sub eax, 1
je 0x405a0e
sub eax, 1
je 0x4059e8
sub eax, 1
jne 0x405a20
push esi
call fcn.00403570
jmp 0x405a1e
test esi, esi
js 0x405a05
mov esi, 0x8007029c
push esi
push 2
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00406c16
mov ecx, esi
call fcn.0040647b
jmp 0x405a1e
mov ecx, esi
call fcn.0040648e
jmp 0x405a1e
mov ecx, esi
call fcn.00406331
mov edi, eax
mov ebx, dword [ebp + 0x38]
mov eax, dword [ebp + 0x18]
mov dword [ebx], eax
xor eax, eax
mov dword [ebx + 4], esi
inc eax
lock xadd dword [0x40a4f0], eax
inc eax
mov dword [ebx + 8], eax
xor esi, esi
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x405a48
cmp word [eax], si
jne 0x405a4a
mov eax, esi
mov dword [ebx + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
mov dword [ebx + 0x24], edi
lea edi, [ebx + 0x2c]
mov dword [ebx + 0x4c], eax
xor eax, eax
push 6
pop ecx
mov dword [ebx + 0x28], esi
rep stosd dword es:[edi], eax
mov edi, dword [0x40a444]
test edi, edi
je 0x405aad
mov ecx, edi
call dword [0x40b1f0]
mov esi, esp
call edi
cmp esi, esp
je 0x405aab
mov ecx, 4
int 0x29
jmp 0x405aaf
mov eax, esi
mov edi, dword [0x40a434]
mov dword [ebx + 0x44], eax
test edi, edi
je 0x405adc
mov esi, esp
mov ecx, edi
push 0x400
push dword [ebp + 0x30]
push ebx
call dword [0x40b1f0]
call edi
cmp esi, esp
je 0x405adc
mov ecx, 4
int 0x29
mov edi, dword [0x40a614]
test edi, edi
je 0x405afe
mov esi, esp
mov ecx, edi
push ebx
call dword [0x40b1f0]
call edi
cmp esi, esp
je 0x405afe
mov ecx, 4
int 0x29
mov edi, dword [0x40a61c]
test edi, edi
je 0x405b20
mov esi, esp
mov ecx, edi
push ebx
call dword [0x40b1f0]
call edi
cmp esi, esp
je 0x405b20
mov ecx, 4
int 0x29
cmp dword [ebx + 4], 0
jl 0x405b37
cmp dword [ebp + 0x18], 3
jne 0x405bec
mov dword [ebx + 4], 0x8000ffff
call fcn.004058a1
mov edi, dword [0x40a608]
test al, al
jne 0x405b70
test edi, edi
je 0x405bbb
cmp byte [0x40a60d], al
jne 0x405bbb
mov esi, esp
xor eax, eax
push eax
push eax
push ebx
mov ecx, edi
call dword [0x40b1f0]
call edi
cmp esi, esp
je 0x405b6e
mov ecx, 4
int 0x29
jmp 0x405bbb
test edi, edi
je 0x405b9d
cmp byte [0x40a60d], 0
jne 0x405b9d
mov esi, esp
mov ecx, edi
push 0x800
push dword [ebp + 0x28]
push ebx
call dword [0x40b1f0]
call edi
cmp esi, esp
je 0x405b9d
mov ecx, 4
int 0x29
mov esi, dword [ebp + 0x28]
xor eax, eax
cmp word [esi], ax
jne 0x405bb4
push ebx
mov edx, 0x800
mov ecx, esi
call fcn.0040523f
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x40a60c], 0
je 0x405be5
mov edi, dword [0x40a43c]
test edi, edi
je 0x405be5
mov ecx, edi
call dword [0x40b1f0]
mov esi, esp
call edi
cmp esi, esp
je 0x405be5
mov ecx, 4
int 0x29
pop edi
pop esi
pop ebx
leave
ret 0x34
call fcn.004078a9
int3