Function at 0x10001b59
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10051216
mov eax, dword fs:[0]
push eax
mov eax, 0x8908
call fcn.10050ed0
mov eax, dword [0x1005e040]
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 eax, dword [0x1010b528]
test eax, eax
je 0x100021d8
cmp dword [eax + 4], 3
je 0x10001bcd
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
cmp edx, dword [0x100d6e64]
jl 0x100021d8
jg 0x10001bbe
cmp eax, dword [0x100d6e60]
jb 0x100021d8
call fcn.10001a75
call fcn.1000317d
jmp 0x100021d8
lea ecx, [ebp - 0x8908]
call fcn.1000174a
xor ebx, ebx
jmp 0x100020c1
mov dword [ebp - 0x18], 0xa7a4b4
mov ecx, ebx
mov byte [ebp - 0x14], 1
mov al, cl
sub al, 0x2f
xor byte [ebp + ecx - 0x18], al
inc ecx
cmp ecx, 3
jb 0x10001bec
push ebx
lea edx, [ebp - 0x18]
mov byte [ebp - 0x14], bl
lea ecx, [ebp - 0x8908]
call fcn.10001878
pop ecx
push ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0xb7bdbdbf
mov esi, eax
mov word [ebp - 0x3c], 0xb0
mov byte [ebp - 0x3a], 1
call fcn.100021f2
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001878
pop ecx
test eax, eax
je 0x10001d11
test esi, esi
je 0x1000209c
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0x9b818094
mov word [ebp - 0x44], 0x87
mov byte [ebp - 0x42], 1
call fcn.100021f2
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001c80
test cl, cl
je 0x10001c7c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001c80
add esi, 2
add eax, 2
test cl, cl
jne 0x10001c60
mov eax, ebx
jmp 0x10001c85
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000209c
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0xb5a7b3b5
mov word [ebp - 0x1c], 0x100
call fcn.10002213
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001809
push ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0xb1b7bdb2
mov esi, eax
mov word [ebp - 0x24], 0x100
call fcn.10002213
mov edx, eax
mov ecx, esi
call fcn.1000183e
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0xa7a0b7bc
mov dword [ebp - 0x68], 0xb2b1b4
mov byte [ebp - 0x64], 1
mov dword [esp], 0x10053593
call fcn.10002234
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
mov edx, eax
mov ecx, 0x1010b428
call fcn.10002c8d
mov ecx, 0x100f6e94
jmp 0x10001e65
test esi, esi
je 0x1000209c
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], 0xb5a7b3b5
mov word [ebp - 0x2c], 0x100
call fcn.10002213
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001809
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x88], 0x9d879190
mov edi, eax
mov dword [ebp - 0x84], 0x81839f83
mov dword [ebp - 0x80], 0x95949086
mov word [ebp - 0x7c], 0x93
mov byte [ebp - 0x7a], 1
call fcn.10002255
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001d8f
test dl, dl
je 0x10001d8b
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001d8f
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001d6f
mov eax, ebx
jmp 0x10001d94
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001dd7
push ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0xa6b0b7a2
mov dword [ebp - 0x4c], 0x100a2b0
call fcn.10002276
mov edx, eax
mov ecx, edi
call fcn.10001878
pop ecx
test eax, eax
je 0x1000209c
mov edx, eax
mov ecx, 0x10107208
call fcn.10002c8d
mov ecx, 0x100d6e5d
jmp 0x10001e65
movaps xmm0, xmmword [0x1005a870]
lea ecx, [ebp - 0xac]
movups xmmword [ebp - 0xac], xmm0
mov word [ebp - 0x9c], 0xa4
mov byte [ebp - 0x9a], 1
call fcn.10002297
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001e22
test dl, dl
je 0x10001e1e
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001e22
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001e02
mov eax, ebx
jmp 0x10001e27
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001e6e
push ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], 0xa6b0b7a2
mov dword [ebp - 0x54], 0x100a2b0
call fcn.10002276
mov edx, eax
mov ecx, edi
call fcn.10001878
pop ecx
test eax, eax
je 0x1000209c
mov edx, eax
mov ecx, 0x1010b530
call fcn.10002c8d
mov ecx, 0x100d6e5f
mov al, 1
xchg byte [ecx], al
jmp 0x1000209c
movaps xmm0, xmmword [0x1005a7d0]
lea ecx, [ebp - 0xb0]
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0xa0], 0xb7a6b7b0
mov word [ebp - 0x9c], 0xb1
mov byte [ebp - 0x9a], 1
call fcn.100022b8
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001ec1
test cl, cl
je 0x10001ebd
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001ec1
add esi, 2
add eax, 2
test cl, cl
jne 0x10001ea1
mov eax, ebx
jmp 0x10001ec6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000209c
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0xa6b6a1a4
mov word [ebp - 0x34], 0x100
call fcn.10002213
mov edx, eax
mov ecx, edi
call fcn.10001809
mov esi, eax
mov dword [ebp - 0x890c], 0x100b6b8
push ebx
lea ecx, [ebp - 0x890c]
mov dword [ebp - 0x8910], esi
call fcn.100022d9
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
push ebx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x78], 0xa6b6a1a4
mov edi, eax
mov dword [ebp - 0x74], 0xbdbab7bb
mov word [ebp - 0x70], 0x100
call fcn.100022fa
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
push 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0xa0b2a4b0
mov ebx, eax
mov dword [ebp - 0x5c], 0x100a4b4
call fcn.10002276
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
mov ecx, dword [0x100d6e28]
mov dword [ebp - 0x8914], eax
cmp ecx, 8
jb 0x10001f76
xor esi, esi
jmp 0x10001f91
xor eax, eax
inc eax
lock xadd dword [0x100d6e20], eax
inc eax
lea esi, [eax - 1]
and esi, 7
shl esi, 9
add esi, 0x100d5e20
test edi, edi
je 0x1000209a
test ebx, ebx
je 0x1000209a
test esi, esi
je 0x1000209a
cmp byte [edi], 0
mov ecx, esi
je 0x10001fc8
xor edx, edx
inc edx
sub edx, edi
lea eax, [edx + edi]
cmp eax, 0x20
jae 0x10001fc8
mov al, byte [edi]
mov byte [ecx], al
inc ecx
inc edi
cmp byte [edi], 0
jne 0x10001fb5
mov byte [ecx], 0
lea ecx, [esi + 0x20]
cmp byte [ebx], 0
je 0x10001fed
xor edx, edx
inc edx
sub edx, ebx
lea eax, [edx + ebx]
cmp eax, 0x158
jae 0x10001fed
mov al, byte [ebx]
mov byte [ecx], al
inc ecx
inc ebx
cmp byte [ebx], 0
jne 0x10001fd8
xor ebx, ebx
mov dword [ebp - 0x98], 0xb7a0bbb5
mov byte [ecx], bl
lea ecx, [ebp - 0x98]
push ebx
mov dword [ebp - 0x94], 0xb1babfa7
mov dword [ebp - 0x90], 0xb3afbbb7
mov word [ebp - 0x8c], 0xaf
mov byte [ebp - 0x8a], 1
call fcn.10002255
mov ecx, dword [ebp - 0x8910]
mov edx, eax
call fcn.10001878
pop ecx
mov ecx, eax
test ecx, ecx
je 0x10002062
lea edx, [esi + 0x178]
cmp byte [ecx], bl
je 0x10002060
xor edi, edi
inc edi
sub edi, ecx
lea eax, [edi + ecx]
cmp eax, 8
jae 0x10002060
mov al, byte [ecx]
mov byte [edx], al
inc edx
inc ecx
cmp byte [ecx], bl
jne 0x1000204e
mov byte [edx], bl
mov edx, dword [ebp - 0x8914]
add esi, 0x180
test edx, edx
je 0x1000208f
cmp byte [edx], bl
je 0x1000208f
xor ecx, ecx
inc ecx
sub ecx, edx
lea eax, [ecx + edx]
cmp eax, 0x80
jae 0x1000208f
mov al, byte [edx]
mov byte [esi], al
inc esi
inc edx
cmp byte [edx], bl
jne 0x1000207b
mov byte [esi], bl
lock inc dword [0x100d6e28]
jmp 0x1000209c
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.10002a95
lea ecx, [ebp - 0x8908]
call fcn.10002ad5
lea ecx, [ebp - 0x8908]
call fcn.1000174a
lea eax, [ebp - 0x8908]
mov dword [ebp - 4], ebx
mov ecx, dword [0x1010b528]
push eax
call fcn.100033d8
test al, al
jne 0x10001bdf
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.10002a95
lea ecx, [ebp - 0x8908]
call fcn.10002ad5
xor al, al
mov ecx, 0x100d6e5e
xchg byte [ecx], al
test al, al
je 0x100021cf
cmp dword [0x10107420], 0
je 0x100021cf
mov ebx, 0x100d6e2c
mov ecx, ebx
call fcn.100019ae
mov esi, dword [0x10107420]
mov dword [ebp - 0x40b4], esi
test esi, esi
je 0x1000214d
push esi
lea eax, [ebp - 0x40b0]
push 0x10107424
push eax
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp - 0x40b4]
add esp, 0xc
mov edi, dword [sym.imp.MSVCP140.dll__Mtx_unlock]
push ebx
call edi
pop ecx
push esi
lea eax, [ebp - 0x40b0]
push eax
call fcn.1000337f
test al, al
jne 0x100021cf
mov ecx, ebx
call fcn.100019ae
mov eax, dword [ebp - 0x40b4]
mov dword [0x10107420], eax
test eax, eax
je 0x10002193
push eax
lea eax, [ebp - 0x40b0]
push eax
push 0x10107424
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, 1
mov ecx, 0x100d6e5e
xchg byte [ecx], al
push ebx
call edi
pop ecx
jmp 0x100021cf
xor eax, eax
inc eax
lock xadd dword [0x100f6e8c], eax
inc eax
dec eax
and eax, 7
imul eax, eax, 0x4004
add eax, 0x100d6e68
push dword [eax]
add eax, 4
push eax
call fcn.1000337f
lock dec dword [0x100f6e90]
mov eax, dword [0x100f6e90]
test eax, eax
jne 0x100021a2
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.1004cf63
leave
ret