Function at 0x402120
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
push edi
sub esp, 0x10
xorps xmm0, xmm0
movups xmmword [esp], xmm0
call fcn.0040134e
movaps xmm0, xmmword [0x417770]
movups xmmword [esp], xmm0
call fcn.0040134e
movsd xmm0, qword [0x417618]
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0040144c
movaps xmm0, xmmword [0x4176f0]
movups xmmword [esp], xmm0
call fcn.0040134e
movaps xmm0, xmmword [0x417700]
movups xmmword [esp], xmm0
call fcn.0040144c
movaps xmm0, xmmword [0x417710]
movups xmmword [esp], xmm0
call fcn.0040134e
movaps xmm0, xmmword [0x417720]
movups xmmword [esp], xmm0
call fcn.0040144c
movaps xmm0, xmmword [0x417730]
movups xmmword [esp], xmm0
call fcn.0040134e
movaps xmm0, xmmword [0x417740]
movups xmmword [esp], xmm0
call fcn.0040134e
movaps xmm0, xmmword [0x417750]
movups xmmword [esp], xmm0
call fcn.0040134e
xor edi, edi
mov esi, 0x7ff00000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.0040134e
mov eax, 0xfff00000
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], eax
movsd xmm0, qword [ebp - 0x20]
mov dword [ebp - 0x14], eax
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.0040134e
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], esi
movsd xmm0, qword [ebp - 0x18]
movsd qword [esp], xmm0
call fcn.0040144c
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x417618]
movsd qword [esp], xmm0
call fcn.0040144c
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0040144c
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x417610]
movsd qword [esp], xmm0
call fcn.0040144c
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [0x417580]
movsd qword [esp], xmm0
call fcn.0040144c
call fcn.004016dd
pop ecx
pop ecx
fstp qword [esp]
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040134e
call fcn.004016dd
pop ecx
pop ecx
fstp qword [esp]
call fcn.004016dd
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
xorps xmm0, xmmword [0x417770]
push ecx
push ecx
movsd qword [esp], xmm0
call fcn.0040134e
call fcn.004016dd
fstp qword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x20]
add esp, 8
xorps xmm0, xmmword [0x417770]
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], 0x2a
mov dword [ebp - 0x1c], esi
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
jne 0x4023a9
mov esi, 0x115
push esi
push str.c:_buildsmoz2_slavem_in_w32_d_0000000000000000000_build_srcobj_firefoxdistincludemozilla_FloatingPoint.h
push str.IsNaN_result_
call fcn.004052ac
add esp, 0xc
int3
push 0x11
pop esi
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], 0x2a
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], 0x2a
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], 0x2a
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 0x10
mov dword [ebp - 4], edi
mov esi, edi
mov eax, edi
mov dword [ebp - 0x1c], edi
cmp esi, 2
jae 0x40261b
add eax, edi
xor ecx, ecx
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, ecx
mov dword [ebp - 0x10], ecx
not eax
cmovae edx, ecx
mov dword [ebp - 0xc], eax
mov eax, edx
not eax
mov dword [ebp - 0x14], edx
and eax, 0xfffff
mov dword [ebp - 8], eax
lea eax, [edi + esi]
xor edi, edi
bts edi, eax
xor esi, esi
cmp eax, 0x20
push edx
cmovae esi, edi
xor edi, esi
cmp eax, 0x40
push ecx
push 0
cmovae esi, edi
call fcn.0040159d
pop ecx
fstp qword [esp]
push esi
push edi
push 0
call fcn.0040159d
pop ecx
fstp qword [esp]
call fcn.0040134e
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push 0
call fcn.0040159d
add esp, 0x14
fstp qword [esp]
push esi
push edi
push 1
call fcn.0040159d
pop ecx
fstp qword [esp]
call fcn.0040134e
push dword [ebp - 8]
not esi
not edi
push dword [ebp - 0xc]
and esi, 0xfffff
push 0
call fcn.0040159d
add esp, 0x14
fstp qword [esp]
push esi
push edi
push 0
call fcn.0040159d
pop ecx
fstp qword [esp]
call fcn.0040134e
push dword [ebp - 8]
push dword [ebp - 0xc]
push 0
call fcn.0040159d
add esp, 0x14
fstp qword [esp]
push esi
push edi
push 1
call fcn.0040159d
pop ecx
fstp qword [esp]
call fcn.0040134e
mov esi, dword [ebp - 4]
add esp, 0x10
mov ecx, dword [ebp - 0x10]
inc esi
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], esi
push 0
pop edi
cmp esi, 2
jb 0x40254c
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x34
jb 0x402513
inc esi
mov dword [ebp - 4], esi
cmp esi, 0x34
jb 0x40250e
push ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff80000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push 0x11
pop esi
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm2, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff40000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff20000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff10000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff08000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff04000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff02000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff01000
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff00800
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff00400
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff00200
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff00100
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
or dword [ebp - 0x20], 0xffffffff
add esp, 8
mov dword [ebp - 0x1c], 0x7ffff0ff
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
push ecx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], 0xfff00000
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
add esp, 8
mov dword [ebp - 0x20], 0xffffff0f
mov dword [ebp - 0x1c], 0x7fffffff
movsd xmm2, qword [ebp - 0x20]
movsd qword [esp], xmm2
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
mov dword [ebp - 0x20], esi
mov esi, 0xfff00000
push ecx
mov dword [ebp - 0x1c], esi
movsd xmm1, qword [ebp - 0x20]
push ecx
movsd qword [esp], xmm1
call fcn.0040105a
pop ecx
pop ecx
test al, al
je 0x40237b
sub esp, 0x10
movsd qword [esp + 8], xmm2
movsd qword [esp], xmm1
call fcn.0040134e
pop ecx
pop ecx
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
movsd xmm0, qword [0x417618]
pop ecx
pop ecx
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
movsd xmm0, qword [0x417538]
pop ecx
pop ecx
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
movsd xmm0, qword [0x417698]
pop ecx
pop ecx
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0x7ff00000
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
movsd xmm0, qword [ebp - 0x20]
movsd qword [esp], xmm0
call fcn.004016dd
push ecx
push ecx
fstp qword [esp]
call fcn.0040144c
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret