Function at 0x405b50
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push edi
mov edi, dword [ebp + 0x28]
xor eax, eax
mov esi, edx
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x18]
xor ebx, ebx
mov dword [ebp - 8], esi
mov word [edi], ax
mov eax, dword [ebp + 0x30]
mov byte [eax], 0
cmp edx, 4
ja case.default.0x405b79
jmp dword [edx*4 + 0x405d3c]
mov ecx, dword [ebp + 0x1c]
call fcn.00405630
mov ebx, eax
jmp 0x405be8
mov ecx, dword [ebp + 0x1c]
call fcn.00405650
mov ebx, eax
jmp 0x405be8
mov ecx, dword [ebp + 0x1c]
call fcn.00405670
mov ebx, eax
jmp 0x405be8
mov ecx, dword [ebp + 0x1c]
test ecx, ecx
js 0x405bd0
mov ecx, dword [ebp - 4]
mov edx, esi
push 0x8007029c
push 3
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00405880
mov edx, dword [ebp + 0x18]
mov ecx, 0x8007029c
call fcn.00405690
mov ebx, eax
jmp 0x405be8
mov ecx, dword [ebp + 0x1c]
call fcn.004056b0
mov ebx, eax
jmp 0x405be8
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x38]
mov eax, 1
mov dword [esi], edx
mov dword [esi + 4], ecx
lock xadd dword [0x44cc4c], eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x405c0e
cmp word [eax], 0
jne 0x405c10
xor eax, eax
mov dword [esi + 0xc], eax
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentThreadId]
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x48], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0x4c], eax
mov eax, dword [0x44cc34]
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
test eax, eax
je 0x405c81
call eax
jmp 0x405c83
xor eax, eax
mov edx, dword [ebp + 0x30]
mov ecx, esi
push 0x400
mov dword [esi + 0x44], eax
call fcn.004057d0
mov eax, dword [0x44cc38]
test eax, eax
je 0x405ca1
push esi
call eax
cmp dword [esi + 4], 0
jl 0x405cad
cmp dword [ebp + 0x18], 4
jne 0x405d28
cmp byte [0x44cc3c], 0
mov eax, dword [0x44cc48]
jne 0x405ccc
cmp dword [0x44cc40], 0
jne 0x405cc8
test eax, eax
je 0x405ccc
xor bl, bl
jmp 0x405cce
mov bl, 1
cmp byte [ebp + 0x24], 0
jne 0x405cf4
test bl, bl
jne 0x405cf4
test eax, eax
je 0x405d1f
cmp byte [0x44cc44], bl
jne 0x405d1f
push 0
push 0
push esi
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
test eax, eax
je 0x405d01
push 0x800
push edi
push esi
call eax
cmp word [edi], 0
jne 0x405d14
push esi
mov edx, 0x800
mov ecx, edi
call fcn.00405980
test bl, bl
je 0x405d1f
push edi
call dword [sym.imp.api_ms_win_core_debug_l1_1_1.dll_OutputDebugStringW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x34
mov ecx, dword [ebp + 4]
mov edx, 0xb46
push 0x4389c8
call fcn.004058b0
nop
sbb byte [ebx + 0x40], 0
mov word [ebx + 64], ds
add byte [eax - 1543487397], bl
pop ebx
inc eax
add cl, bl
pop ebx
inc eax
add byte [ebp - 0x75], dl
push ebp
mov ebp, esp