Function at 0x40389d
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x436de6
mov eax, dword fs:[0]
push eax
push ecx
push ecx
push ebx
push esi
push edi
mov eax, dword [0x45006c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp + 0x28]
xor eax, eax
mov esi, dword [ebp + 0x38]
and dword [ebp + 0x28], 0
mov word [ebx], ax
mov eax, dword [ebp + 0x30]
mov byte [eax], 0
mov eax, dword [ebp + 0x1c]
mov edi, dword [eax]
mov dword [esi + 8], edi
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x18]
sub eax, 0
je 0x40394c
sub eax, 1
je 0x403941
sub eax, 1
je 0x40390d
sub eax, 1
jne 0x403955
push edi
call fcn.00403168
pop ecx
jmp 0x403948
test edi, edi
js 0x403938
mov edi, 0x8007029c
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00409f25
add esp, 0x14
mov dword [esi + 8], edi
mov ecx, edi
call fcn.004032c0
mov dword [esi + 0xc], eax
mov ecx, edi
call fcn.00403155
jmp 0x403948
mov ecx, edi
call fcn.00403142
mov edi, eax
jmp 0x403958
mov ecx, edi
call fcn.0040312f
jmp 0x403948
mov edi, dword [ebp + 0x28]
mov eax, dword [ebp + 0x18]
xor ecx, ecx
mov dword [esi], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 4], ecx
cmp byte [eax + 8], cl
je 0x403971
mov dword [esi + 4], 8
xor eax, eax
inc eax
lock xadd dword [0x4551b8], eax
inc eax
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x40398c
cmp word [eax], cx
jne 0x40398e
mov eax, ecx
mov dword [esi + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi + 0x18], eax
xor edx, edx
mov eax, dword [ebp + 8]
mov dword [esi + 0x24], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x54], eax
xor eax, eax
mov dword [esi + 0x2c], edi
lea edi, [esi + 0x34]
push 6
pop ecx
mov dword [esi + 0x30], edx
rep stosd dword es:[edi], eax
mov eax, dword [0x455030]
test eax, eax
je 0x4039dd
call eax
jmp 0x4039df
mov eax, edx
mov dword [esi + 0x4c], eax
mov eax, dword [0x45500c]
test eax, eax
je 0x4039f6
push 0x400
push dword [ebp + 0x30]
push esi
call eax
mov eax, dword [0x455004]
test eax, eax
je 0x403a02
push esi
call eax
mov eax, dword [0x45501c]
test eax, eax
je 0x403a0e
push esi
call eax
xor eax, eax
cmp dword [esi + 8], eax
jl 0x403a2f
cmp dword [ebp + 0x18], 3
jne 0x403ad4
mov ecx, 0x8000ffff
mov dword [esi + 8], ecx
call fcn.004032c0
mov dword [esi + 0xc], eax
cmp byte [0x454fe8], 0
jne 0x403a5e
mov eax, dword [0x454fe0]
test eax, eax
je 0x403a48
call eax
movzx eax, al
jmp 0x403a54
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
neg eax
sbb eax, eax
neg eax
test eax, eax
jne 0x403a5e
xor ecx, ecx
mov al, cl
jmp 0x403a63
xor eax, eax
inc eax
xor ecx, ecx
test al, al
mov eax, dword [0x454fec]
jne 0x403a80
test eax, eax
je 0x403ab0
cmp byte [0x454ff8], 0
jne 0x403ab0
push ecx
push ecx
push esi
call eax
jmp 0x403ab0
mov edi, 0x800
test eax, eax
je 0x403a97
cmp byte [0x454ff8], 0
jne 0x403a97
push edi
push ebx
push esi
call eax
xor eax, eax
cmp word [ebx], ax
jne 0x403aa9
push esi
mov edx, edi
mov ecx, ebx
call fcn.00402dc1
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x454ff0], 0
je 0x403ac4
mov eax, dword [0x455014]
test eax, eax
je 0x403ac4
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret
call fcn.00403c75
int3