Function at 0x10164f20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10321641
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [0x1060b5e0]
cmp dword [edx + 0xaa8], 0
je 0x10165150
cmp dword [edx + 0x5528], 0
je 0x10165150
mov eax, dword fs:[0x2c]
mov ecx, dword [0x104c14e0]
mov ebx, dword [eax + ecx*4]
mov eax, dword [edx + 0x5528]
mov dword [ebp - 0x30], ebx
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [eax + 0x10]
subss xmm0, dword [0x1061226c]
subss xmm1, dword [0x10612270]
mov eax, dword [0x10612240]
movss dword [ebp - 0x34], xmm0
movss dword [ebp - 0x38], xmm1
cmp eax, dword [ebx + 4]
jg 0x1016516c
jmp 0x10164fc5
movss xmm0, dword [ebp - 0x34]
mov edx, dword [0x1060b5e0]
cmp dword [0x10612284], 0
je 0x10165150
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1016507b
mov eax, dword [0x1061224c]
cmp eax, dword [ebx + 4]
jg 0x10165253
mov ecx, dword [0x1061227c]
test ecx, ecx
je 0x10165150
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x30], eax
call dword [ebp - 0x30]
mov ecx, dword [0x10612284]
fstp dword [ebp - 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x30], eax
call dword [ebp - 0x30]
fmul dword [ebp - 0x2c]
fdivr dword [ebp - 0x34]
fstp dword [ebp - 0x2c]
cvttss2si ecx, dword [ebp - 0x2c]
cmp ecx, 0x7fff
jg 0x10165063
cmp ecx, 0xffff8000
jl 0x1016505c
cmp ecx, 1
jge 0x1016504e
test ecx, ecx
js 0x1016504e
mov ecx, 1
jmp 0x10165068
cmp ecx, 0xffffffff
jle 0x10165068
test ecx, ecx
jg 0x10165068
or ecx, 0xffffffff
jmp 0x10165068
mov ecx, 0x8000
jmp 0x10165068
mov ecx, 0x7fff
mov edx, dword [0x1060b5e0]
xorps xmm1, xmm1
mov eax, dword [edx + 0x5528]
mov word [eax + 0x46], cx
movss xmm0, dword [ebp - 0x38]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10165123
mov eax, dword [0x10612280]
cmp eax, dword [ebx + 4]
jg 0x1016550d
mov ecx, dword [0x10612248]
test ecx, ecx
je 0x10165150
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x2c], eax
call dword [ebp - 0x2c]
mov ecx, dword [0x10612284]
fstp dword [ebp - 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x2c], eax
call dword [ebp - 0x2c]
fmul dword [ebp - 0x30]
fdivr dword [ebp - 0x38]
fstp dword [ebp - 0x2c]
cvttss2si ecx, dword [ebp - 0x2c]
cmp ecx, 0x7fff
jg 0x1016510e
cmp ecx, 0xffff8000
jl 0x10165107
cmp ecx, 1
jge 0x101650f9
test ecx, ecx
js 0x101650f9
mov ecx, 1
jmp 0x10165113
cmp ecx, 0xffffffff
jle 0x10165113
test ecx, ecx
jg 0x10165113
or ecx, 0xffffffff
jmp 0x10165113
mov ecx, 0x8000
jmp 0x10165113
mov ecx, 0x7fff
mov edx, dword [0x1060b5e0]
mov eax, dword [edx + 0x5528]
mov word [eax + 0x44], cx
mov eax, dword [edx + 0x5528]
movss xmm0, dword [eax + 0xc]
movss dword [0x1061226c], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [0x10612270], xmm0
movss xmm0, dword [eax + 0x14]
movss dword [0x10612274], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
ret
push 0x10612240
call fcn.102bba07
add esp, 4
cmp dword [0x10612240], 0xffffffff
jne 0x10164fba
mov dword [ebp - 4], 0
cmp byte [0x104b1300], 0
jne 0x101651fd
mov byte [0x104b1300], 1
xor esi, esi
jmp 0x101651a1
xor edx, edx
mov ebx, esi
xor edx, dword [0x104b1314]
xor ebx, dword [0x104b1310]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x104b1301]
xor cl, bl
mov byte [esi + 0x104b1301], cl
inc esi
cmp esi, 0xc
jb 0x101651a1
mov ebx, dword [ebp - 0x30]
jmp 0x101651fd
push ecx
push 0x104b130c
push 0x104b1301
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x10612284], eax
call fcn.10019dd0
push 0x10612240
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x10164fba
push 0x1061224c
call fcn.102bba07
add esp, 4
cmp dword [0x1061224c], 0xffffffff
jne 0x10164ff3
mov dword [ebp - 4], 2
cmp byte [0x104b10c0], 0
jne 0x101654b7
mov edi, dword [0x104b10d0]
mov ebx, edi
mov esi, dword [0x104b10d4]
xor ebx, 0x1de26cd5
mov eax, ebx
mov byte [0x104b10c0], 1
mov edx, esi
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c1]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c1], al
xor ebx, 0x1de26cd4
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c2]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c2], al
xor ebx, 0x1de26cd7
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c3]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c3], al
xor ebx, 0x1de26cd6
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, edx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c4]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c4], al
xor ebx, 0x1de26cd1
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c5]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c5], al
xor ebx, 0x1de26cd0
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b10c6]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b10c6], al
xor ebx, 0x1de26cd3
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, edi
shl eax, 0x11
xor edx, 0x1de26cd2
xor al, byte [0x104b10c7]
xor al, bl
xor esi, 0xd28f2c5
mov byte [0x104b10c7], al
mov ecx, esi
mov eax, edx
shld ecx, eax, 0xd
mov ebx, dword [ebp - 0x30]
shl eax, 0xd
xor esi, ecx
xor edx, eax
mov ecx, esi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor esi, ecx
mov eax, edx
shld esi, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b10c8]
xor al, dl
mov byte [0x104b10c8], al
jmp 0x101654b7
push ecx
push 0x104b10c8
push 0x104b10c1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 3
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x1061227c], eax
call fcn.10019dd0
push 0x1061224c
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x10164ff3
push 0x10612280
call fcn.102bba07
add esp, 4
cmp dword [0x10612280], 0xffffffff
jne 0x1016509e
mov dword [ebp - 4], 4
cmp byte [0x104b1250], 0
jne 0x101656e6
mov edi, dword [0x104b1258]
mov ebx, edi
mov esi, dword [0x104b125c]
xor ebx, 0x1de26cd5
mov eax, ebx
mov byte [0x104b1250], 1
mov edx, esi
xor edx, 0xd28f2c5
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [str.M_Se]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [str.M_Se], al
xor ebx, 0x1de26cd4
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1252]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b1252], al
xor ebx, 0x1de26cd7
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1253]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b1253], al
xor ebx, 0x1de26cd6
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor ebx, eax
xor edx, ecx
mov eax, ebx
mov ecx, edx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, esi
xor esi, 0xd28f2c5
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104b1254]
mov ecx, edx
xor al, bl
mov ebx, edi
mov byte [0x104b1254], al
xor ebx, 0x1de26cd1
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
xor ebx, eax
shr ecx, 7
xor edx, ecx
mov eax, ebx
shld edx, eax, 0x11
mov edx, edi
mov ecx, esi
shl eax, 0x11
xor edx, 0x1de26cd0
xor al, byte [0x104b1255]
xor al, bl
mov byte [0x104b1255], al
mov eax, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor esi, ecx
xor edx, eax
mov ecx, esi
mov eax, edx
shrd eax, ecx, 7
xor edx, eax
shr ecx, 7
xor esi, ecx
mov eax, edx
shld esi, eax, 0x11
shl eax, 0x11
xor al, byte [0x104b1256]
xor al, dl
mov byte [0x104b1256], al
jmp 0x101656e6
push ecx
push 0x104b1256
push str.M_Se
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 5
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x10612248], eax
call fcn.10019dd0
push 0x10612280
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1016509e