Function at 0x10050d20
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b71c8
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x100e41c4]
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 dword [ebp - 0x3c], edx
mov ebx, ecx
mov dword [ebp - 0x44], ebx
cmp byte [0x10232bf5], 0
jne 0x10050e07
push 0xff
push 0x19
lea edx, [ebp - 0x30]
mov dword [ebp - 0x30], 0x350c069
mov ecx, 0x400000
mov dword [ebp - 0x2c], 0xff050000
mov dword [ebp - 0x28], 0x89ffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0xff8d8bff
mov dword [ebp - 0x1c], 0x51ffffff
mov byte [ebp - 0x18], 0xd9
call fcn.10086180
add esp, 8
mov dword [0x101eef08], eax
test eax, eax
je 0x10050dc2
mov eax, dword [eax + 7]
mov dword [0x101eef08], eax
mov byte [0x10232bf5], 1
jmp 0x1005145b
mov edx, 0x6a
xor ecx, ecx
nop dword [eax]
mov al, byte [ecx + str.98Z2___:_0_]
xor al, dl
mov byte [ebp + ecx - 0x28], al
inc ecx
lea eax, [edx + 1]
movzx edx, al
cmp ecx, 0xd
jb 0x10050dd0
mov byte [ebp - 0x1b], 0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
call fcn.10086360
mov byte [0x10232bf5], 1
jmp 0x1005145b
cmp ebx, 0x12c
jg 0x1005145b
mov eax, dword [0x100e65c4]
imul esi, ebx, 0x350
add esi, dword [0x101eef08]
mov dword [ebp - 0x48], esi
cmp eax, 0xffff
je 0x10050e43
cmp byte [esi + 4], 0
jne 0x10050e4d
cmp ebx, eax
mov ecx, 0xffff
cmove eax, ecx
mov dword [0x100e65c4], eax
cmp byte [esi + 4], 0
je 0x1005145b
movss xmm0, dword [esi + 0x1a8]
divss xmm0, dword [0x100d6858]
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0x1ac]
divss xmm0, dword [0x100d6858]
mov dword [ebp - 0x38], eax
movd xmm3, eax
movzx eax, byte [edx + 0xac]
cvttss2si ecx, xmm0
movd xmm1, eax
movzx eax, byte [edx + 0xb0]
cvtdq2pd xmm3, xmm3
mov dword [ebp - 0x34], ecx
movd xmm2, ecx
movd xmm0, eax
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm2, xmm0
subsd xmm3, xmm1
mulsd xmm2, xmm2
mulsd xmm3, xmm3
addsd xmm3, xmm2
movaps xmm0, xmm3
call fcn.100b4bc0
mov eax, 0xfffffd78
movsd qword [ebp - 0x20], xmm0
lea edi, [esi + 0x288]
sub eax, esi
mov edx, edi
mov ebx, eax
nop dword [eax + eax]
mov al, byte [edx]
cmp al, 0x41
jl 0x10050eee
cmp al, 0x5a
jg 0x10050eee
add al, 0x20
mov byte [edx], al
mov ecx, edi
inc edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10050ef4
sub ecx, esi
lea eax, [ebx + edx]
cmp eax, ecx
jbe 0x10050ee0
mov ebx, dword [ebp - 0x44]
xor esi, esi
cmp esi, 0x22
jge 0x10050f3a
mov edx, dword [esi*4 + 0x100c9e58]
mov ecx, edi
push str.aeiouyd
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9c78]
add esp, 4
mov ecx, edi
push 0x100cbd30
call fcn.10087a00
add esp, 4
cmp esi, 0x16
jge 0x10050f6b
mov edx, dword [esi*4 + 0x100c9d78]
mov ecx, edi
push 0x100d2354
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9920]
add esp, 4
mov ecx, edi
push 0x100cbd38
call fcn.10087a00
add esp, 4
cmp esi, 0xa
jge 0x10050f9c
mov edx, dword [esi*4 + 0x100c9bbc]
mov ecx, edi
push 0x100d2358
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9b94]
add esp, 4
mov ecx, edi
push 0x100cbd3c
call fcn.10087a00
add esp, 4
cmp esi, 0x22
jge 0x10050fcd
mov edx, dword [esi*4 + 0x100c9898]
mov ecx, edi
push 0x100d235c
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9be8]
add esp, 4
mov ecx, edi
push 0x100cbd40
call fcn.10087a00
add esp, 4
cmp esi, 0x16
jge 0x10050ffe
mov edx, dword [esi*4 + 0x100c99f8]
mov ecx, edi
push 0x100d2360
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9d20]
add esp, 4
mov ecx, edi
push 0x100cbd4c
call fcn.10087a00
add esp, 4
cmp esi, 0xa
jge 0x1005102f
mov edx, dword [esi*4 + 0x100c9ee0]
mov ecx, edi
push 0x100d2364
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c96ec]
add esp, 4
mov ecx, edi
push 0x100cbd50
call fcn.10087a00
add esp, 4
cmp esi, 2
jge 0x10051060
mov edx, dword [esi*4 + 0x100c9e50]
mov ecx, edi
push 0x100d2368
call fcn.10087a00
mov edx, dword [esi*4 + 0x100c9714]
add esp, 4
mov ecx, edi
push 0x100c2384
call fcn.10087a00
add esp, 4
inc esi
cmp esi, 0x22
jl 0x10050f0e
cmp byte [0x101e732e], 0
je 0x100510a1
push 0x100d236c
push edi
call fcn.1008ffe0
mov esi, dword [ebp - 0x3c]
add esp, 8
test eax, eax
je 0x100510a4
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
jmp 0x100510a4
mov esi, dword [ebp - 0x3c]
cmp byte [0x101e732f], 0
je 0x10051234
push str.jewel_of_bless
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_soul
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_chaos
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_life
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_creation
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_guardian
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.gemstone
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.jewel_of_harmony
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.refining_stone
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.uoc_nguyen
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.tam_linh
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.hon_nguyen
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.sinh_menh
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.da_ho_menh
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.nguyen_thuy
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.tao_hoa
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.tinh_luyen
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x1005121d
push str.sang_tao
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x10051234
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
mov dl, byte [0x101e7330]
mov al, byte [0x101e7331]
test dl, dl
jne 0x10051247
test al, al
je 0x100512a7
mov ecx, dword [ebp - 0x48]
mov cl, byte [ecx + 0x2d8]
cmp cl, 5
je 0x1005125a
cmp cl, 0xb
jne 0x100512a7
test dl, dl
je 0x1005127a
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
mov al, byte [0x101e7331]
add esp, 8
test al, al
je 0x100512a7
push 0x100d09a4
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x100512a7
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e7332], 0
je 0x100512eb
push str.condor
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x100512d4
push str.long_vu
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x100512eb
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e7333], 0
je 0x1005132f
push str.linh_hon_chien_ma
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
jne 0x10051318
push str.dark_horse_spirit
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x1005132f
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73ca], 0
je 0x10051361
push 0x101e7334
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x10051361
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73cb], 0
je 0x10051393
push 0x101e734d
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x10051393
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73cc], 0
je 0x100513c5
push 0x101e7366
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x100513c5
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73cd], 0
je 0x100513f7
push 0x101e737f
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x100513f7
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73ce], 0
je 0x10051429
push 0x101e7398
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x10051429
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
cmp byte [0x101e73cf], 0
je 0x1005145b
push 0x101e73b1
push edi
call fcn.1008ffe0
add esp, 8
test eax, eax
je 0x1005145b
push dword [ebp - 0x34]
movsd xmm2, qword [ebp - 0x20]
mov edx, ebx
push dword [ebp - 0x38]
mov ecx, esi
call fcn.10050b50
add esp, 8
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.1008d9f1
mov esp, ebp
pop ebp
ret