Function at 0x412550
Capabilities:
Contain obfuscated stackstrings
Execute anti-debugging instructions

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x468efb
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x94
mov eax, dword [0x47400c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xa4], edi
movss xmm3, dword [0x59d334]
lea eax, [ebp - 0x78]
movss xmm2, dword [0x59d338]
movaps xmm1, xmm3
addss xmm1, dword [0x46e5a0]
addss xmm3, dword [0x46e584]
push 0
push ecx
mov ecx, dword [0x59d330]
movaps xmm0, xmm2
addss xmm0, dword [0x46e58c]
addss xmm2, dword [0x46e544]
mov dword [esp], 0x41000000
push 0x643c3228
push eax
lea eax, [ebp - 0x70]
movss dword [ebp - 0x78], xmm1
push eax
movss dword [ebp - 0x74], xmm0
movss dword [ebp - 0x70], xmm3
movss dword [ebp - 0x6c], xmm2
call fcn.00442260
mov esi, dword [ebx + 8]
mov ecx, dword [esi + 0x80]
test ecx, ecx
je 0x412659
movss xmm2, dword [0x59d338]
sub esp, 0x10
movss xmm1, dword [0x59d334]
mov eax, esp
addss xmm2, dword [0x46e578]
addss xmm1, dword [0x46e588]
movaps xmm0, xmmword [0x46f560]
movss xmm3, dword [0x46e558]
push ecx
movups xmmword [eax], xmm0
mov dword [esp], 0x42f00000
call fcn.00410ce0
add esp, 0x14
mov eax, dword [0x59d324]
cmp dword [eax + 0x238], 2
jne 0x412677
mov eax, dword [eax + 0x230]
cmp dword [eax + 0x10], 0
je 0x412e37
mov ecx, dword [0x59d350]
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
movss xmm0, dword [eax + 0x44]
movss xmm2, dword [eax + 0x40]
subss xmm0, dword [eax + 0x94]
subss xmm2, dword [eax + 0x90]
addss xmm0, dword [0x46e564]
addss xmm2, dword [0x46e56c]
movss dword [eax + 0x10c], xmm0
movss dword [eax + 0x108], xmm2
movss xmm1, dword [eax + 0x124]
maxss xmm1, xmm0
movss xmm0, dword [eax + 0x120]
maxss xmm0, xmm2
movss dword [eax + 0x124], xmm1
movss dword [eax + 0x120], xmm0
mov eax, dword [0x59d36c]
add eax, 0xf0
cmp dword [eax + 0x14], 0x10
jb 0x412704
mov eax, dword [eax]
push eax
call fcn.0044dc20
movss xmm1, dword [0x46e5d0]
add esp, 4
xorps xmm0, xmm0
call fcn.00426240
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x412727
mov eax, dword [esi]
push eax
call fcn.0044dd40
mov ecx, dword [0x59d350]
add esp, 4
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
movss xmm1, dword [eax + 0x40]
subss xmm1, dword [eax + 0x90]
movss xmm0, dword [eax + 0x120]
addss xmm1, dword [0x46e56c]
maxss xmm0, xmm1
movss dword [eax + 0x108], xmm1
movss dword [eax + 0x120], xmm0
mov eax, dword [0x59d36c]
add eax, 0x108
cmp dword [eax + 0x14], 0x10
jb 0x41278c
mov eax, dword [eax]
push eax
call fcn.0044dc20
movss xmm1, dword [0x46e5d0]
add esp, 4
xorps xmm0, xmm0
call fcn.00426240
lea eax, [ebp - 0x90]
push eax
push ecx
mov ecx, dword [0x59d324]
push 1
lea ecx, [ecx + 0x230]
call fcn.00404650
add esp, 4
mov ecx, eax
call fcn.004047f0
mov dword [ebp - 4], 0
cmp dword [eax + 0x14], 0x10
jb 0x4127d9
mov eax, dword [eax]
push eax
call fcn.0044dd40
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x412822
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x412818
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x412818
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00466a5c
add esp, 8
mov ecx, dword [0x59d350]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
movss xmm1, dword [eax + 0x40]
subss xmm1, dword [eax + 0x90]
movss xmm0, dword [eax + 0x120]
addss xmm1, dword [0x46e56c]
maxss xmm0, xmm1
movss dword [eax + 0x108], xmm1
movss dword [eax + 0x120], xmm0
mov eax, dword [0x59d36c]
add eax, 0x120
cmp dword [eax + 0x14], 0x10
jb 0x412893
mov eax, dword [eax]
push eax
call fcn.0044dc20
movss xmm1, dword [0x46e5d0]
add esp, 4
xorps xmm0, xmm0
call fcn.00426240
lea eax, [ebp - 0x90]
push eax
push ecx
mov ecx, dword [0x59d324]
push 0
lea ecx, [ecx + 0x230]
call fcn.00404650
add esp, 4
mov ecx, eax
call fcn.004047f0
mov dword [ebp - 4], 1
cmp dword [eax + 0x14], 0x10
jb 0x4128e0
mov eax, dword [eax]
push eax
call fcn.0044dd40
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov edx, dword [ebp - 0x7c]
cmp edx, 0x10
jb 0x412929
mov ecx, dword [ebp - 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41291f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x41291f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00466a5c
add esp, 8
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
cmp eax, 0x10
je 0x412a0f
cmp eax, 0x28
je 0x412a0f
cmp eax, 0x29
je 0x412a0f
cmp eax, 0x2a
je 0x412a0f
cmp eax, 0x2b
je 0x412a0f
cmp eax, 0x1f
je 0x412a0f
mov ecx, dword [0x59d350]
movss xmm1, dword [0x46e51c]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0x41d00000
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
cmp byte [eax + 0xc8], 0
jne 0x412abf
movss xmm3, dword [eax + 0x108]
lea ecx, [ebp - 0x78]
movss xmm0, dword [eax + 0x10c]
movaps xmm4, xmm3
addss xmm4, dword [0x46e3dc]
movaps xmm2, xmm0
movss dword [ebp - 0x68], xmm3
addss xmm2, xmm1
movss dword [ebp - 0x64], xmm0
movss xmm1, dword [0x46e5d0]
movss dword [ebp - 0x60], xmm4
movss dword [ebp - 0x5c], xmm2
call fcn.00425eb0
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x68]
call fcn.00426010
add esp, 8
jmp 0x412abf
mov ecx, dword [0x59d350]
mov dword [ebp - 0x78], 0x44414e37
mov word [ebp - 0x74], 0x4f4d
mov byte [ebp - 0x72], 0
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
lea ecx, [ebp - 0x77]
movss xmm1, dword [eax + 0x40]
subss xmm1, dword [eax + 0x90]
movss xmm0, dword [eax + 0x120]
addss xmm1, dword [0x46e56c]
maxss xmm0, xmm1
movss dword [eax + 0x108], xmm1
movss dword [eax + 0x120], xmm0
cmp dword [edi + 0x54], 0
sete dl
call fcn.00450370
test al, al
je 0x412a84
mov dword [edi + 0x54], 0
movss xmm1, dword [0x46e5d0]
xorps xmm0, xmm0
call fcn.00426240
cmp dword [edi + 0x54], 1
lea ecx, [ebp - 0x6f]
mov dword [ebp - 0x70], 0x44414c37
sete dl
mov word [ebp - 0x6c], 0x4f4d
mov byte [ebp - 0x6a], 0
call fcn.00450370
test al, al
je 0x412abf
mov dword [edi + 0x54], 1
mov ecx, dword [0x59d350]
mov eax, dword [ecx + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [ecx + 0x3f04]
mov ecx, dword [0x59d36c]
add ecx, 0x138
movss xmm1, dword [eax + 0x40]
subss xmm1, dword [eax + 0x90]
movss xmm0, dword [eax + 0x120]
addss xmm1, dword [0x46e56c]
maxss xmm0, xmm1
movss dword [eax + 0x108], xmm1
movss dword [eax + 0x120], xmm0
cmp dword [ecx + 0x14], 0x10
jb 0x412b1d
mov ecx, dword [ecx]
lea eax, [edi + 5]
mov edx, eax
mov dword [ebp - 0x74], eax
call fcn.0044ff40
mov esi, dword [0x59d350]
mov eax, dword [esi + 0x3f04]
mov byte [eax + 0xc5], 1
mov eax, dword [esi + 0x3f04]
movss xmm1, dword [eax + 0x40]
subss xmm1, dword [eax + 0x90]
movss xmm0, dword [eax + 0x120]
addss xmm1, dword [0x46e56c]
maxss xmm0, xmm1
movss dword [eax + 0x108], xmm1
movss dword [eax + 0x120], xmm0
mov eax, dword [0x59d328]
cmp byte [eax + 7], 0
jne 0x412c28
mov ecx, dword [esi + 0x3f98]
lea edx, [esi + 0x3f98]
mov eax, ecx
shr eax, 2
and al, 1
jne 0x412bbc
movss xmm1, dword [esi + 0x3854]
movss xmm0, dword [esi + 0x3858]
mulss xmm0, xmm1
movss dword [esi + 0x52f4], xmm1
movss dword [esi + 0x3854], xmm0
or ecx, 4
mov dword [edx], ecx
lea ecx, [esi + 0x40a4]
push edx
call fcn.00437740
inc word [esi + 0x52f8]
lea eax, [ebp - 0x9c]
mov esi, dword [0x59d350]
push eax
mov dword [ebp - 0x9c], 0
movss xmm0, dword [esi + 0x3854]
lea ecx, [esi + 0x4080]
mulss xmm0, dword [0x46e434]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [esi + 0x3854]
movss dword [ebp - 0x98], xmm0
call fcn.00437bf0
movss xmm0, dword [ebp - 0x6c]
movss dword [esi + 0x3854], xmm0
mov ecx, dword [0x59d36c]
add ecx, 0x150
mov dword [ebp - 0x70], 0x43480000
mov dword [ebp - 0x6c], 0x41f00000
cmp dword [ecx + 0x14], 0x10
jb 0x412c4a
mov ecx, dword [ecx]
push ecx
lea edx, [ebp - 0x70]
call fcn.0044eb60
add esp, 4
test al, al
je 0x412d4a
jmp 0x6dca13
mov eax, dword [0x59d328]
cmp byte [eax + 7], 0
jne 0x412da6
mov ecx, 1
call fcn.004188e0
mov esi, dword [0x59d350]
mov edx, dword [esi + 0x3f98]
dec dword [esi + 0x40a4]
dec word [esi + 0x52f8]
mov ecx, dword [esi + 0x40a4]
mov eax, dword [esi + 0x40ac]
shr edx, 2
mov eax, dword [eax + ecx*4 - 4]
mov dword [esi + 0x3f98], eax
and dl, 1
je 0x412da6
test al, 4
jne 0x412da6
mov eax, dword [esi + 0x52f4]
mov dword [esi + 0x3854], eax
mov eax, dword [0x59d36c]
add eax, 0x168
cmp dword [eax + 0x14], 0x10
jb 0x412db8
mov eax, dword [eax]
push eax
call fcn.0044dc20
mov eax, dword [0x59d350]
add esp, 4
mov esi, dword [0x59d324]
mov cl, 0x3f
mov dword [ebp - 0x68], 0x731c1c3f
mov dword [ebp - 0x64], 0x7c4b4c5e
or dword [eax + 0x3f9c], 1
mov dword [eax + 0x3fa0], 0x43fa0000
mov edx, dword [esi + 0x204]
sub edx, dword [esi + 0x200]
sar edx, 2
xor eax, eax
mov dword [ebp - 0x60], 0x58515e57
mov word [ebp - 0x5c], 0x4c5a
mov byte [ebp - 0x5a], 0
nop
xor byte [ebp + eax - 0x67], cl
inc eax
cmp eax, 0xd
jae 0x412e1f
mov cl, byte [ebp - 0x68]
jmp 0x412e10
push ecx
push edx
push dword [esi + 0x200]
mov byte [ebp - 0x5a], 0
push ecx
lea ecx, [ebp - 0x67]
call fcn.00458840
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00466a4b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4