Function at 0x100396a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cea0b
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x100f7040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x100fb170], eax
call esi
sub eax, dword [edi + 0x30]
mov ecx, eax
sbb edx, dword [edi + 0x34]
call fcn.100cbcc0
divss xmm0, dword [0x100ee0c0]
comiss xmm0, dword [0x100ee064]
jb 0x1003a059
call esi
cmp byte [edi + 0x20], 0
mov ecx, 0xe10
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
je 0x10039ba0
mov esi, dword [edi + 0x24]
test esi, esi
jle 0x10039724
dec esi
mov dword [edi + 0x24], esi
test esi, esi
js 0x10039b8f
mov eax, esi
cdq
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
mov ecx, 0x3c
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x4c], eax
mov eax, esi
cdq
idiv ecx
mov esi, edx
mov dword [ebp - 4], 0
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.100892d0
lea ecx, [ebp - 0x2c]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x2c], eax
mov dword [eax], ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
mov dword [ebp - 4], 1
push esi
push eax
cmp eax, 0xa
jae 0x1003992d
cmp esi, 0xa
jae 0x10039882
mov dl, 0x52
mov dword [ebp - 0x88], 0x36776252
mov dword [ebp - 0x84], 0x36776268
mov byte [ebp - 0x80], cl
nop word [eax + eax]
xor byte [ebp + ecx - 0x87], dl
inc ecx
cmp ecx, 7
jae 0x100397f5
mov dl, byte [ebp - 0x88]
jmp 0x100397e0
sub esp, 0x1c
mov byte [ebp - 0x80], 0
mov edx, esp
lea ecx, [ebp - 0x87]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039822
sub ecx, esi
lea eax, [ebp - 0x87]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0xe0]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x10039862
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.10008460
lea ecx, [ebp - 0xe0]
call fcn.10002f50
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe0], 0
jmp 0x10039a88
mov dl, 0x26
mov dword [ebp - 0x64], 0x42031626
mov dword [ebp - 0x60], 0x42031c
xor byte [ebp + ecx - 0x63], dl
inc ecx
cmp ecx, 6
jae 0x100398a1
mov dl, byte [ebp - 0x64]
jmp 0x10039892
sub esp, 0x1c
mov byte [ebp - 0x5d], 0
mov edx, esp
lea ecx, [ebp - 0x63]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100398d0
sub ecx, esi
lea eax, [ebp - 0x63]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0xfc]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x1003990d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.10008460
lea ecx, [ebp - 0xfc]
call fcn.10002f50
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xfc], 0
jmp 0x10039a88
cmp esi, 0xa
jae 0x100399dd
mov dl, 0x76
mov dword [ebp - 0x6c], 0x4c125376
mov dword [ebp - 0x68], 0x125346
xor byte [ebp + ecx - 0x6b], dl
inc ecx
cmp ecx, 6
jae 0x10039955
mov dl, byte [ebp - 0x6c]
jmp 0x10039946
sub esp, 0x1c
mov byte [ebp - 0x65], 0
mov edx, esp
lea ecx, [ebp - 0x6b]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039980
sub ecx, esi
lea eax, [ebp - 0x6b]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x118]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x100399bd
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.10008460
lea ecx, [ebp - 0x118]
call fcn.10002f50
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x118], 0
jmp 0x10039a88
mov dl, 0x6d
mov dword [ebp - 0x54], 0x5709486d
mov word [ebp - 0x50], 0x948
mov byte [ebp - 0x4e], 0
xor byte [ebp + ecx - 0x53], dl
inc ecx
cmp ecx, 5
jae 0x100399ff
mov dl, byte [ebp - 0x54]
jmp 0x100399f0
sub esp, 0x1c
mov byte [ebp - 0x4e], 0
mov edx, esp
lea ecx, [ebp - 0x53]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039a30
sub ecx, esi
lea eax, [ebp - 0x53]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x134]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x10039a6d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.10008460
lea ecx, [ebp - 0x134]
call fcn.10002f50
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x134], 0
push 8
push eax
call fcn.10089370
movaps xmm0, xmmword [0x100ee8e0]
lea eax, [ebp - 0x28]
add esp, 8
mov dword [ebp - 0xb4], 0x4b65334d
cmp dword [ebp - 0x14], 0xf
movups xmmword [ebp - 0xc4], xmm0
cmova eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
mov byte [ebp - 0xb0], 0
mov al, byte [ebp + ecx - 0xc3]
xor al, byte [ebp - 0xc4]
mov byte [ebp + ecx - 0xc3], al
inc ecx
cmp ecx, 0x13
jb 0x10039ac0
sub esp, 0x1c
mov byte [ebp - 0xb0], 0
mov edx, esp
lea ecx, [ebp - 0xc3]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039b10
sub ecx, esi
lea eax, [ebp - 0xc3]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x150]
push eax
call fcn.1000d7c0
add esp, 0x24
mov byte [ebp - 4], 2
mov edx, eax
mov ecx, dword [edi + 8]
call fcn.1001e320
lea ecx, [ebp - 0x150]
call fcn.10002f50
mov eax, dword [ebp - 0x150]
push 8
push eax
mov dword [ebp - 0x150], 0
call fcn.10089370
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.10002f50
mov eax, dword [ebp - 0x2c]
push 8
push eax
mov dword [ebp - 0x2c], 0
call fcn.10089370
add esp, 8
cmp dword [edi + 0x24], 0
jg 0x10039ba0
mov byte [edi + 0x20], 0
mov dword [edi + 0x24], 0
cmp byte [edi + 0x21], 0
je 0x1003a059
movzx eax, word [edi + 0x28]
mov ecx, eax
test ax, ax
jle 0x10039bbd
dec eax
mov word [edi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x1003a048
movsx esi, cx
mov ecx, 0xe10
mov eax, esi
cdq
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
movzx eax, cx
mov ecx, 0x3c
mov dword [ebp - 0x4c], eax
mov eax, esi
cdq
idiv ecx
movzx esi, dx
mov dword [ebp - 4], 3
xorps xmm0, xmm0
push 8
mov dword [ebp - 0x48], 0
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.100892d0
lea ecx, [ebp - 0x48]
add esp, 4
mov dword [eax + 4], 0
mov dword [ebp - 0x48], eax
mov dword [eax], ecx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 4], 4
cmp dx, 0xa
jae 0x10039d35
cmp esi, 0xa
jae 0x10039d35
movzx eax, dx
xor ecx, ecx
push esi
push eax
mov dl, 0x14
mov dword [ebp - 0x94], 0x70312414
mov dword [ebp - 0x90], 0x7031242e
mov byte [ebp - 0x8c], 0
nop word [eax + eax]
xor byte [ebp + ecx - 0x93], dl
inc ecx
cmp ecx, 7
jae 0x10039ca5
mov dl, byte [ebp - 0x94]
jmp 0x10039c90
sub esp, 0x1c
mov byte [ebp - 0x8c], 0
mov edx, esp
lea ecx, [ebp - 0x93]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039cd5
sub ecx, esi
lea eax, [ebp - 0x93]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x16c]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039d15
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.10008460
lea ecx, [ebp - 0x16c]
call fcn.10002f50
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x16c], 0
jmp 0x10039f48
mov eax, esi
movzx ecx, dx
push eax
push ecx
xor ecx, ecx
cmp dx, 0xa
jae 0x10039dee
mov dl, 0x72
mov dword [ebp - 0x74], 0x16574272
mov dword [ebp - 0x70], 0x165748
xor byte [ebp + ecx - 0x73], dl
inc ecx
cmp ecx, 6
jae 0x10039d67
mov dl, byte [ebp - 0x74]
jmp 0x10039d58
sub esp, 0x1c
mov byte [ebp - 0x6d], 0
mov edx, esp
lea ecx, [ebp - 0x73]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039d91
sub ecx, esi
lea eax, [ebp - 0x73]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x188]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039dce
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.10008460
lea ecx, [ebp - 0x188]
call fcn.10002f50
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x188], 0
jmp 0x10039f48
cmp esi, 0xa
jae 0x10039e9d
mov dl, 0x56
mov dword [ebp - 0x7c], 0x6c327356
mov dword [ebp - 0x78], 0x327366
xor byte [ebp + ecx - 0x7b], dl
inc ecx
cmp ecx, 6
jae 0x10039e16
mov dl, byte [ebp - 0x7c]
jmp 0x10039e07
sub esp, 0x1c
mov byte [ebp - 0x75], 0
mov edx, esp
lea ecx, [ebp - 0x7b]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039e40
sub ecx, esi
lea eax, [ebp - 0x7b]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1a4]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039e7d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.10008460
lea ecx, [ebp - 0x1a4]
call fcn.10002f50
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1a4], 0
jmp 0x10039f48
mov dl, 0x30
mov dword [ebp - 0x5c], 0xa541530
mov word [ebp - 0x58], 0x5415
mov byte [ebp - 0x56], 0
xor byte [ebp + ecx - 0x5b], dl
inc ecx
cmp ecx, 5
jae 0x10039ebf
mov dl, byte [ebp - 0x5c]
jmp 0x10039eb0
sub esp, 0x1c
mov byte [ebp - 0x56], 0
mov edx, esp
lea ecx, [ebp - 0x5b]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039ef0
sub ecx, esi
lea eax, [ebp - 0x5b]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1c0]
push eax
call fcn.1000d7c0
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039f2d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.10008460
lea ecx, [ebp - 0x1c0]
call fcn.10002f50
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x1c0], 0
push 8
push eax
call fcn.10089370
movaps xmm0, xmmword [0x100ee840]
lea eax, [ebp - 0x44]
add esp, 8
mov dword [ebp - 0x9c], 0x67314f34
cmp dword [ebp - 0x30], 0xf
movups xmmword [ebp - 0xac], xmm0
cmova eax, dword [ebp - 0x44]
xor ecx, ecx
push eax
mov word [ebp - 0x98], 0x49
mov al, byte [ebp + ecx - 0xab]
xor al, byte [ebp - 0xac]
mov byte [ebp + ecx - 0xab], al
inc ecx
cmp ecx, 0x14
jb 0x10039f82
sub esp, 0x1c
mov byte [ebp - 0x97], 0
mov edx, esp
lea ecx, [ebp - 0xab]
xorps xmm0, xmm0
lea esi, [ecx + 1]
mov dword [edx], 0
movups xmmword [edx + 4], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x18], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10039fd0
sub ecx, esi
lea eax, [ebp - 0xab]
push ecx
push eax
mov ecx, edx
call fcn.10003370
lea eax, [ebp - 0x1dc]
push eax
call fcn.1000d7c0
add esp, 0x24
mov byte [ebp - 4], 5
mov edx, eax
mov ecx, dword [edi + 0xc]
call fcn.1001e320
lea ecx, [ebp - 0x1dc]
call fcn.10002f50
mov eax, dword [ebp - 0x1dc]
push 8
push eax
mov dword [ebp - 0x1dc], 0
call fcn.10089370
add esp, 8
lea ecx, [ebp - 0x48]
call fcn.10002f50
mov eax, dword [ebp - 0x48]
push 8
push eax
mov dword [ebp - 0x48], 0
call fcn.10089370
add esp, 8
cmp word [edi + 0x28], 0
jg 0x1003a059
xor eax, eax
mov byte [edi + 0x21], 0
mov word [edi + 0x28], ax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100892c0
mov esp, ebp
pop ebp
ret