Function at 0x402560
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x470d20
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x48d030]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp + 0x28]
xor eax, eax
mov edx, dword [ebp + 0x18]
mov dword [ebp + 0x28], 0
mov word [ebx], ax
mov eax, dword [ebp + 0x30]
mov byte [eax], 0
cmp edx, 3
ja case.default.0x4025ad
jmp dword [edx*4 + 0x402798]
mov edi, dword [ebp + 0x1c]
mov ecx, edi
call fcn.00401730
mov dword [ebp + 0x28], eax
jmp 0x402619
mov edi, dword [ebp + 0x1c]
mov ecx, edi
call fcn.00401750
mov dword [ebp + 0x28], eax
jmp 0x402619
mov edi, dword [ebp + 0x1c]
test edi, edi
js 0x4025f9
push 0x8007029c
push dword [ebp + 0x14]
mov edx, esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00415c10
add esp, 0x14
mov edi, 0x8007029c
mov ecx, edi
call fcn.00401770
mov dword [ebp + 0x28], eax
jmp 0x402619
mov edi, dword [ebp + 0x1c]
push edi
call fcn.00401790
add esp, 4
mov dword [ebp + 0x28], eax
jmp 0x402619
mov edi, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x38]
mov eax, dword [ebp + 0x18]
mov dword [esi], eax
mov eax, 1
mov dword [esi + 4], edi
lock xadd dword [0x491c14], eax
inc eax
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x402642
cmp word [eax], 0
jne 0x402644
xor eax, eax
mov dword [esi + 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi + 0x10], eax
xorps xmm0, xmm0
mov eax, dword [ebp + 8]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x28]
mov dword [esi + 0x24], 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 - 0x14]
mov dword [esi + 0x4c], eax
mov eax, dword [0x491970]
mov dword [esi + 0x28], 0
movq qword [esi + 0x38], xmm0
mov dword [esi + 0x40], 0
movq qword [esi + 0x2c], xmm0
mov dword [esi + 0x34], 0
test eax, eax
je 0x4026a9
call eax
jmp 0x4026ab
xor eax, eax
mov dword [esi + 0x44], eax
mov eax, dword [0x49194c]
test eax, eax
je 0x4026c2
push 0x400
push dword [ebp + 0x30]
push esi
call eax
mov eax, dword [0x491944]
test eax, eax
je 0x4026ce
push esi
call eax
mov eax, dword [0x49195c]
test eax, eax
je 0x4026da
push esi
call eax
cmp dword [esi + 4], 0
jl 0x4026f1
cmp dword [ebp + 0x18], 3
jne 0x402793
mov dword [esi + 4], 0x8000ffff
cmp byte [0x49192c], 0
jne 0x402735
mov eax, dword [0x491924]
test eax, eax
je 0x40270a
call eax
movzx eax, al
jmp 0x402716
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
neg eax
sbb eax, eax
neg eax
test eax, eax
jne 0x402735
mov eax, dword [0x491930]
test eax, eax
je 0x40276d
cmp byte [0x49193c], 0
jne 0x40276d
push 0
push 0
push esi
call eax
jmp 0x40276d
mov eax, dword [0x491930]
test eax, eax
je 0x402750
cmp byte [0x49193c], 0
jne 0x402750
push 0x800
push ebx
push esi
call eax
cmp word [ebx], 0
jne 0x402766
push esi
mov edx, 0x800
mov ecx, ebx
call fcn.00401410
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x491934], 0
je 0x402781
mov eax, dword [0x491954]
test eax, eax
je 0x402781
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00402990
mov ah, 0x25
inc eax
add bl, al
and eax, 0x25d20040
inc eax
add byte [0xcc004026], al
int3