Function at 0x1003e1a0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x1008b040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x10116ebc]
push edi
cmp dword [esi + 0x4838], 0
je 0x1003e1cd
lea edi, [esi + 0x4834]
jmp 0x1003e1e0
cmp dword [esi + 0x4890], 0
je 0x1003e1de
lea edi, [esi + 0x488c]
jmp 0x1003e1e0
xor edi, edi
mov ecx, dword [esi + 0x47f0]
test ecx, 0x400
je 0x1003e20f
cmp dword [esi + 0x4830], 1
je 0x1003e200
cmp dword [esi + 0x482c], 0
jne 0x1003e20f
cmp dword [esi + 0x48bc], 0
je 0x1003e20f
lea edi, [esi + 0x48b8]
test edi, edi
jne 0x1003e266
test ecx, 0x400
je 0x1003e227
or ecx, 0x1000
mov dword [esi + 0x47f0], ecx
cmp dword [esi + 0x4798], 0
je 0x1003e53f
test ecx, 0x1000
jne 0x1003e53f
mov eax, dword [0x10116ebc]
mov word [eax + 0x47d1], 1
mov byte [eax + 0x47d3], 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007e2f7
mov esp, ebp
pop ebp
ret
test cl, 0x20
je 0x1003e283
mov eax, dword [esi + 0x4864]
test eax, eax
je 0x1003e283
cmp eax, dword [esi + 0x4798]
je 0x1003e283
lea edi, [esi + 0x4860]
lea edx, [esi + 0x488c]
cmp edi, edx
je 0x1003e2d1
cmp dword [esi + 0x4890], 0
je 0x1003e2d1
mov eax, dword [edx]
mov eax, dword [eax + 0x2dc]
cmp eax, dword [esi + 0x4794]
jne 0x1003e2d1
movss xmm1, dword [esi + 0x48ac]
movss xmm0, dword [edi + 0x20]
comiss xmm0, xmm1
ja 0x1003e2cf
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1003e2d1
movss xmm0, dword [edi + 0x24]
comiss xmm0, dword [esi + 0x48b0]
jbe 0x1003e2d1
mov edi, edx
cmp dword [esi + 0x47cc], 0
jne 0x1003e368
test cl, 0x40
je 0x1003e310
cmp dword [esi + 0x47fc], 2
xorps xmm0, xmm0
jne 0x1003e2f6
mov eax, dword [edi]
movss xmm0, dword [eax + 0x68]
mov eax, dword [edi]
movss dword [eax + 0x70], xmm0
mov dword [eax + 0x78], 0
mov dword [eax + 0x80], 0
jmp 0x1003e368
mov edx, dword [edi]
lea eax, [ebp - 0x14]
push dword [esi + 0x47f4]
lea ecx, [ebp - 0x98]
push eax
movss xmm2, dword [edx + 0xe4]
movss xmm3, dword [edx + 0xe8]
movaps xmm1, xmm2
addss xmm1, dword [edi + 0xc]
addss xmm2, dword [edi + 0x14]
movaps xmm0, xmm3
addss xmm0, dword [edi + 0x10]
addss xmm3, dword [edi + 0x18]
movss dword [ebp - 0x14], xmm1
movss dword [ebp - 0xc], xmm2
movss dword [ebp - 0x10], xmm0
movss dword [ebp - 8], xmm3
call fcn.1003a2a0
add esp, 8
mov eax, dword [edi]
cmp dword [esi + 0x4794], eax
je 0x1003e3d6
test byte [esi + 0x5a50], 2
je 0x1003e3ce
mov edx, dword [eax]
xor ecx, ecx
movaps xmm0, xmmword [0x10086250]
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x24], 0x6c676d6a
movaps xmm0, xmmword [0x100860e0]
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x20], 0x26212b74
mov dword [ebp - 0x1c], 0x92a2170
mov byte [ebp - 0x18], 0
nop
mov al, byte [ebp - 0x44]
xor byte [ebp + ecx - 0x43], al
inc ecx
cmp ecx, 0x2b
jb 0x1003e3b0
push edx
lea eax, [ebp - 0x43]
mov byte [ebp - 0x18], 0
push eax
call fcn.10041400
add esp, 8
mov eax, dword [edi]
mov dword [esi + 0x4794], eax
mov eax, dword [esi + 0x3e60]
cmp eax, dword [edi + 4]
je 0x1003e3ea
xor edx, edx
xor ecx, ecx
call fcn.1002d8b0
mov eax, dword [edi + 4]
cmp dword [esi + 0x4798], eax
je 0x1003e410
mov dword [esi + 0x47b4], eax
mov eax, dword [edi + 8]
mov dword [esi + 0x47b8], eax
mov eax, dword [esi + 0x47f8]
mov dword [esi + 0x47bc], eax
test byte [esi + 0x5a50], 8
je 0x1003e490
mov eax, dword [esi + 0x4794]
xor ecx, ecx
movaps xmm0, xmmword [0x10085b10]
mov edx, dword [eax]
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x50], 0x735b0a
movaps xmm0, xmmword [0x10085af0]
movups xmmword [ebp - 0x80], xmm0
movaps xmm0, xmmword [0x10085ae0]
movups xmmword [ebp - 0x70], xmm0
movaps xmm0, xmmword [0x10086190]
movups xmmword [ebp - 0x60], xmm0
nop dword [eax]
mov al, byte [ebp - 0x90]
xor byte [ebp + ecx - 0x8f], al
inc ecx
cmp ecx, 0x42
jb 0x1003e460
push edx
push dword [esi + 0x47cc]
lea eax, [ebp - 0x8f]
mov byte [ebp - 0x4d], 0
push dword [edi + 4]
push eax
call fcn.10041400
add esp, 0x10
mov ebx, dword [0x10116ebc]
mov edx, dword [esi + 0x47cc]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [ebx + 0x479c], eax
mov eax, dword [ebx + 0x4794]
mov dword [ebx + 0x4798], ecx
mov dword [ebx + 0x47cc], edx
mov dword [eax + edx*4 + 0x2f8], ecx
lea eax, [edx + 0x30]
movups xmm0, xmmword [edi + 0xc]
shl eax, 4
add eax, dword [ebx + 0x4794]
movups xmmword [eax], xmm0
mov edx, dword [esi + 0x47f0]
mov ecx, edx
test edx, 0x400
je 0x1003e50c
test dword [edi + 0x1c], 0x400
je 0x1003e50c
mov eax, dword [edi + 4]
or ecx, 0x1000
mov dword [esi + 0x47c0], eax
mov dword [esi + 0x47c4], 5
mov dword [esi + 0x47f0], ecx
test ecx, 0x800
je 0x1003e527
mov eax, dword [edi + 4]
mov dword [esi + 0x47c0], eax
mov dword [esi + 0x47c4], 0
test ecx, 0x1000
jne 0x1003e53f
mov word [ebx + 0x47d1], 1
mov byte [ebx + 0x47d3], 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1007e2f7
mov esp, ebp
pop ebp
ret