Function at 0x409e50
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
mov eax, dword [0x5eae84]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x641180
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x641174]
mov edx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ecx, ecx
je 0x40a36f
mov edi, dword [ebp - 0xac]
mov bx, di
movq xmm0, qword [ecx + 4]
mov eax, dword [ecx + 0x2c]
movq qword [ebp - 0xb0], xmm0
movq xmm0, qword [ecx + 0xc]
mov edi, dword [ebp - 0xac]
movq qword [ebp - 0xa8], xmm0
movq xmm0, qword [ecx + 0x14]
movq qword [ebp - 0xa0], xmm0
movq xmm0, qword [ecx + 0x1c]
movq qword [ebp - 0x98], xmm0
movq xmm0, qword [ecx + 0x24]
mov dword [0x641174], eax
mov eax, dword [0x641170]
mov dword [ecx + 0x2c], eax
push 0x641180
movq qword [ebp - 0x90], xmm0
mov dword [0x641170], ecx
mov bx, di
call edx
mov esi, dword [ebp - 0xb0]
lea eax, [esi - 1]
cmp eax, 0xf
ja case.default.0x409f07
jmp dword [eax*4 + 0x40a508]
mov esi, dword [0x641164]
test esi, esi
je 0x40a350
lea esp, [esp]
mov ecx, dword [esi + 0x14]
push edi
call fcn.0040dc00
test byte [esi + 0x10], 1
je 0x40a350
mov esi, dword [esi + 8]
test esi, esi
jne 0x409f20
jmp 0x40a350
mov esi, dword [0x641164]
test esi, esi
je 0x40a350
lea ecx, [ecx]
mov ecx, dword [esi + 0x14]
push edi
call fcn.0040dcf0
test byte [esi + 0x10], 1
je 0x40a350
mov esi, dword [esi + 8]
test esi, esi
jne 0x409f50
jmp 0x40a350
mov ecx, edi
call fcn.00409460
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
call fcn.0040d910
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa8]
call fcn.0040db80
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa8]
call fcn.0040dc00
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa8]
call fcn.0040dcf0
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
call fcn.0040ddc0
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
call fcn.0040de60
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
call fcn.0040df40
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
call fcn.0040e080
jmp 0x40a350
movzx eax, bx
test eax, eax
js 0x40a350
cmp dword [0x641154], eax
jle 0x40a350
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a350
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a350
test byte [eax + 0x10], 1
je 0x40a350
mov ecx, dword [eax + 0x14]
cmp edi, dword [ecx + 8]
jne 0x40a350
push dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
call fcn.0040e180
jmp 0x40a350
movzx eax, word [ebp - 0xac]
test eax, eax
js 0x40a349
cmp dword [0x641154], eax
jle 0x40a349
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a349
lea eax, [eax + eax*2]
lea ebx, [ecx + eax*8]
test ebx, ebx
je 0x40a349
test byte [ebx + 0x10], 1
je 0x40a349
mov ebx, dword [ebx + 0x14]
cmp edi, dword [ebx + 8]
jne 0x40a349
movss xmm0, dword [ebx + 0xcc]
movss xmm1, dword [ebp - 0xa8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x40a349
mov esi, dword [ebx + 4]
movss dword [ebx + 0xcc], xmm1
test esi, esi
je 0x40a349
mov esi, dword [esi]
mov ecx, ebx
call fcn.00409150
push ecx
mov ecx, dword [ebx + 4]
movss dword [esp], xmm0
call dword [esi + 0x10]
mov bx, word [ebp - 0xac]
push 0x641180
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x641174]
mov edx, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ecx, ecx
jne 0x409e8e
push 0x641180
call edx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057d22e
mov esp, ebp
pop ebp
ret
movzx eax, word [ebp - 0xac]
test eax, eax
js 0x40a349
cmp dword [0x641154], eax
jle 0x40a349
mov ecx, dword [0x64115c]
test ecx, ecx
je 0x40a349
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
test eax, eax
je 0x40a349
test byte [eax + 0x10], 1
je 0x40a349
mov eax, dword [eax + 0x14]
mov bx, word [ebp - 0xac]
cmp edi, dword [eax + 8]
jne 0x40a350
movss xmm0, dword [ebp - 0xa8]
movss dword [eax + 0xd4], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [eax + 0xd8], xmm0
movss xmm0, dword [ebp - 0xa0]
movss dword [eax + 0xdc], xmm0
jmp 0x40a350
movss xmm0, dword [ebp - 0x8c]
movss xmm3, dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
sub esp, 0x14
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ebp - 0x90]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x94]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xac]
call fcn.0040f7c0
add esp, 0x14
jmp 0x40a350
movss xmm0, dword [ebp - 0x98]
movss xmm3, dword [ebp - 0xa0]
movss xmm2, dword [ebp - 0xa4]
movss xmm1, dword [ebp - 0xa8]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [esp], xmm0
movss xmm0, dword [ebp - 0xac]
call fcn.0040fa90
add esp, 8
jmp 0x40a350
push str._warn_
lea eax, [ebp - 0x88]
push 0x80
push eax
call dword [sym.imp.MSVCR110.dll_strcpy_s]
add esp, 0xc
lea eax, [ebp - 0x82]
push esi
push str.ActionManager::Update_execute_unkown_action__d___
push 0x7a
push eax
call dword [sym.imp.MSVCR110.dll_sprintf_s]
add esp, 0x10
mov word [ebp + eax - 0x82], 0xa
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x40a350