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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [edx]
sub esp, 0x28
push esi
mov esi, dword [0x10116ebc]
push edi
mov edi, ecx
cmp eax, 1
jne 0x10038ef2
movss xmm2, dword [edx + 8]
movss xmm1, dword [0x1008583c]
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x10038e84
movss xmm0, dword [edx + 0xc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10038e84
test byte [esi + 0x5a50], 0x20
je 0x100390df
movaps xmm0, xmmword [0x10086280]
xor ecx, ecx
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 4], 0x4f6c1d
movaps xmm0, xmmword [0x10085a00]
movups xmmword [ebp - 0x14], xmm0
nop dword [eax + eax]
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x22
jb 0x10038e60
lea eax, [ebp - 0x23]
mov byte [ebp - 1], 0
push edi
push eax
call fcn.10041400
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test byte [esi + 0x5a50], 0x20
je 0x100390df
movss xmm1, dword [edx + 0xc]
xor ecx, ecx
movaps xmm0, xmmword [0x10085ac0]
cvtps2pd xmm1, xmm1
mov dword [ebp - 0xc], 0x1c56011e
mov dword [ebp - 8], 0x11e1510
mov dword [ebp - 4], 0x3a1956
cvtps2pd xmm2, xmm2
movups xmmword [ebp - 0x1c], xmm0
nop
mov al, byte [ebp - 0x1c]
xor byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 0x1a
jb 0x10038ec0
sub esp, 0x10
mov byte [ebp - 1], 0
lea eax, [ebp - 0x1b]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
push edi
push eax
call fcn.10041400
add esp, 0x18
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x10038f58
test byte [esi + 0x5a50], 0x20
je 0x100390df
cmp byte [edx + 0xc], 0
mov esi, str.Down
movaps xmm0, xmmword [0x10086000]
mov eax, 0x10085460
cmove esi, eax
mov dword [ebp - 8], 0xe4a0b0e
movups xmmword [ebp - 0x18], xmm0
mov dword [ebp - 4], 0x245d0b
xor ecx, ecx
mov al, byte [ebp - 0x18]
xor byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 0x16
jb 0x10038f30
push esi
push dword [edx + 8]
lea eax, [ebp - 0x17]
mov byte [ebp - 1], 0
push edi
push eax
call fcn.10041400
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x10038fd4
test byte [esi + 0x5a50], 0x20
je 0x100390df
movss xmm1, dword [edx + 0xc]
xor ecx, ecx
movss xmm2, dword [edx + 8]
movaps xmm0, xmmword [0x100862b0]
cvtps2pd xmm1, xmm1
mov dword [ebp - 0x10], 0x78676c61
mov dword [ebp - 0xc], 0x6c69652f
mov dword [ebp - 8], 0x602f7867
mov word [ebp - 4], 0x43
cvtps2pd xmm2, xmm2
movups xmmword [ebp - 0x20], xmm0
mov al, byte [ebp - 0x20]
xor byte [ebp + ecx - 0x1f], al
inc ecx
cmp ecx, 0x1c
jb 0x10038fa2
sub esp, 0x10
mov byte [ebp - 3], 0
lea eax, [ebp - 0x1f]
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm2
push edi
push eax
call fcn.10041400
add esp, 0x18
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 4
jne 0x1003903a
test byte [esi + 0x5a50], 0x20
je 0x100390df
cmp byte [edx + 0xc], 0
mov eax, 0x10085460
mov ecx, dword [edx + 8]
mov esi, str.Down
cmove esi, eax
call fcn.10038a30
movaps xmm0, xmmword [0x10085b70]
mov edx, eax
movups xmmword [ebp - 0x14], xmm0
mov word [ebp - 4], 0x5e
xor ecx, ecx
mov al, byte [ebp - 0x14]
xor byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 0x10
jb 0x10039014
push esi
push edx
lea eax, [ebp - 0x13]
mov byte [ebp - 3], 0
push edi
push eax
call fcn.10041400
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x10039096
test byte [esi + 0x5a50], 0x20
je 0x100390df
movaps xmm0, xmmword [0x10085a80]
xor ecx, ecx
mov edx, dword [edx + 8]
movups xmmword [ebp - 0x18], xmm0
mov dword [ebp - 8], 0x7f77626c
mov dword [ebp - 4], 0x4d6e1f
nop word [eax + eax]
mov al, byte [ebp - 0x18]
xor byte [ebp + ecx - 0x17], al
inc ecx
cmp ecx, 0x16
jb 0x10039070
push edx
push edx
lea eax, [ebp - 0x17]
mov byte [ebp - 1], 0
push edi
push eax
call fcn.10041400
add esp, 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 6
jne 0x100390df
test byte [esi + 0x5a50], 0x20
je 0x100390df
movaps xmm0, xmmword [0x10086080]
xor ecx, ecx
movzx edx, byte [edx + 8]
movups xmmword [ebp - 0x14], xmm0
mov dword [ebp - 4], 0x6d0342
nop dword [eax]
mov al, byte [ebp - 0x14]
xor byte [ebp + ecx - 0x13], al
inc ecx
cmp ecx, 0x12
jb 0x100390c0
push edx
lea eax, [ebp - 0x13]
mov byte [ebp - 1], 0
push edi
push eax
call fcn.10041400
add esp, 0xc
pop edi
pop esi
mov esp, ebp
pop ebp
ret