Function at 0x100394e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ca18b
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x100f2040]
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 [0x100f6168], eax
call esi
sub eax, dword [edi + 0x30]
mov ecx, eax
sbb edx, dword [edi + 0x34]
call fcn.100c7440
divss xmm0, dword [0x100e8810]
comiss xmm0, dword [0x100e87b4]
jb 0x10039e99
call esi
cmp byte [edi + 0x20], 0
mov ecx, 0xe10
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
je 0x100399e0
mov esi, dword [edi + 0x24]
test esi, esi
jle 0x10039564
dec esi
mov dword [edi + 0x24], esi
test esi, esi
js 0x100399cf
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.10089110
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 0x1003976d
cmp esi, 0xa
jae 0x100396c2
mov dl, 0x1c
mov dword [ebp - 0x88], 0x78392c1c
mov dword [ebp - 0x84], 0x78392c26
mov byte [ebp - 0x80], cl
nop word [eax + eax]
xor byte [ebp + ecx - 0x87], dl
inc ecx
cmp ecx, 7
jae 0x10039635
mov dl, byte [ebp - 0x88]
jmp 0x10039620
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 0x10039662
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x100396a2
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.100082f0
lea ecx, [ebp - 0xe0]
call fcn.10002f50
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe0], 0
jmp 0x100398c8
mov dl, 0x28
mov dword [ebp - 0x64], 0x4c0d1828
mov dword [ebp - 0x60], 0x4c0d12
xor byte [ebp + ecx - 0x63], dl
inc ecx
cmp ecx, 6
jae 0x100396e1
mov dl, byte [ebp - 0x64]
jmp 0x100396d2
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 0x10039710
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x1003974d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.100082f0
lea ecx, [ebp - 0xfc]
call fcn.10002f50
mov eax, dword [ebp - 0xfc]
mov dword [ebp - 0xfc], 0
jmp 0x100398c8
cmp esi, 0xa
jae 0x1003981d
mov dl, 0x49
mov dword [ebp - 0x6c], 0x732d6c49
mov dword [ebp - 0x68], 0x2d6c79
xor byte [ebp + ecx - 0x6b], dl
inc ecx
cmp ecx, 6
jae 0x10039795
mov dl, byte [ebp - 0x6c]
jmp 0x10039786
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 0x100397c0
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x100397fd
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.100082f0
lea ecx, [ebp - 0x118]
call fcn.10002f50
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x118], 0
jmp 0x100398c8
mov dl, 0x3a
mov dword [ebp - 0x54], 0x5e1f3a
mov word [ebp - 0x50], 0x5e1f
mov byte [ebp - 0x4e], 0
xor byte [ebp + ecx - 0x53], dl
inc ecx
cmp ecx, 5
jae 0x1003983f
mov dl, byte [ebp - 0x54]
jmp 0x10039830
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 0x10039870
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x2c]
cmp eax, esi
je 0x100398ad
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x2c]
call fcn.100082f0
lea ecx, [ebp - 0x134]
call fcn.10002f50
mov eax, dword [ebp - 0x134]
mov dword [ebp - 0x134], 0
push 8
push eax
call fcn.100891b0
movaps xmm0, xmmword [0x100e95b0]
lea eax, [ebp - 0x28]
add esp, 8
mov dword [ebp - 0xb4], 0x250b5d23
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 0x10039900
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 0x10039950
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.1000d650
add esp, 0x24
mov byte [ebp - 4], 2
mov edx, eax
mov ecx, dword [edi + 8]
call fcn.1001e150
lea ecx, [ebp - 0x150]
call fcn.10002f50
mov eax, dword [ebp - 0x150]
push 8
push eax
mov dword [ebp - 0x150], 0
call fcn.100891b0
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.100891b0
add esp, 8
cmp dword [edi + 0x24], 0
jg 0x100399e0
mov byte [edi + 0x20], 0
mov dword [edi + 0x24], 0
cmp byte [edi + 0x21], 0
je 0x10039e99
movzx eax, word [edi + 0x28]
mov ecx, eax
test ax, ax
jle 0x100399fd
dec eax
mov word [edi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10039e88
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.10089110
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 0x10039b75
cmp esi, 0xa
jae 0x10039b75
movzx eax, dx
xor ecx, ecx
push esi
push eax
mov dl, 0x56
mov dword [ebp - 0x94], 0x32736656
mov dword [ebp - 0x90], 0x3273666c
mov byte [ebp - 0x8c], 0
nop word [eax + eax]
xor byte [ebp + ecx - 0x93], dl
inc ecx
cmp ecx, 7
jae 0x10039ae5
mov dl, byte [ebp - 0x94]
jmp 0x10039ad0
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 0x10039b15
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039b55
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.100082f0
lea ecx, [ebp - 0x16c]
call fcn.10002f50
mov eax, dword [ebp - 0x16c]
mov dword [ebp - 0x16c], 0
jmp 0x10039d88
mov eax, esi
movzx ecx, dx
push eax
push ecx
xor ecx, ecx
cmp dx, 0xa
jae 0x10039c2e
mov dl, 0x40
mov dword [ebp - 0x74], 0x24657040
mov dword [ebp - 0x70], 0x24657a
xor byte [ebp + ecx - 0x73], dl
inc ecx
cmp ecx, 6
jae 0x10039ba7
mov dl, byte [ebp - 0x74]
jmp 0x10039b98
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 0x10039bd1
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039c0e
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.100082f0
lea ecx, [ebp - 0x188]
call fcn.10002f50
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x188], 0
jmp 0x10039d88
cmp esi, 0xa
jae 0x10039cdd
mov dl, 0x33
mov dword [ebp - 0x7c], 0x9571633
mov dword [ebp - 0x78], 0x571603
xor byte [ebp + ecx - 0x7b], dl
inc ecx
cmp ecx, 6
jae 0x10039c56
mov dl, byte [ebp - 0x7c]
jmp 0x10039c47
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 0x10039c80
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039cbd
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.100082f0
lea ecx, [ebp - 0x1a4]
call fcn.10002f50
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1a4], 0
jmp 0x10039d88
mov dl, 3
mov dword [ebp - 0x5c], 0x39672603
mov word [ebp - 0x58], 0x6726
mov byte [ebp - 0x56], 0
xor byte [ebp + ecx - 0x5b], dl
inc ecx
cmp ecx, 5
jae 0x10039cff
mov dl, byte [ebp - 0x5c]
jmp 0x10039cf0
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 0x10039d30
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.1000d650
mov esi, eax
add esp, 0x28
lea eax, [ebp - 0x48]
cmp eax, esi
je 0x10039d6d
mov ecx, eax
call fcn.10002f50
push esi
lea ecx, [ebp - 0x48]
call fcn.100082f0
lea ecx, [ebp - 0x1c0]
call fcn.10002f50
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x1c0], 0
push 8
push eax
call fcn.100891b0
movaps xmm0, xmmword [0x100e9510]
lea eax, [ebp - 0x44]
add esp, 8
mov dword [ebp - 0x9c], 0x1f49374c
cmp dword [ebp - 0x30], 0xf
movups xmmword [ebp - 0xac], xmm0
cmova eax, dword [ebp - 0x44]
xor ecx, ecx
push eax
mov word [ebp - 0x98], 0x31
mov al, byte [ebp + ecx - 0xab]
xor al, byte [ebp - 0xac]
mov byte [ebp + ecx - 0xab], al
inc ecx
cmp ecx, 0x14
jb 0x10039dc2
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 0x10039e10
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.1000d650
add esp, 0x24
mov byte [ebp - 4], 5
mov edx, eax
mov ecx, dword [edi + 0xc]
call fcn.1001e150
lea ecx, [ebp - 0x1dc]
call fcn.10002f50
mov eax, dword [ebp - 0x1dc]
push 8
push eax
mov dword [ebp - 0x1dc], 0
call fcn.100891b0
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.100891b0
add esp, 8
cmp word [edi + 0x28], 0
jg 0x10039e99
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.10089100
mov esp, ebp
pop ebp
ret