Function at 0x19f6fc0
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [edx + 0x10]
mov ebx, ecx
movzx ecx, byte [edx + 0x1b]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], esi
push edi
mov edi, dword [ebp + 0x14]
movzx eax, byte [edi + 2]
test ecx, ecx
jne 0x19f7418
mov ecx, dword [ebx + eax*4 + 0x3c0]
mov al, byte [edi + 3]
mov dword [ebp - 0x14], ecx
test al, 6
jne 0x19f7455
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
add edi, 8
mov ecx, dword [ebp + 0x10]
mov eax, edi
shr eax, 3
xor ebx, ebx
movzx eax, ax
mov dword [ebp - 0x20], eax
mov dword [esi], edx
lea eax, [ecx - 0x20]
xor edx, edx
mov dword [ebp + 0xc], edi
div edi
lea edx, [esi + ecx]
mov dword [ebp - 8], ebx
add eax, 0x1f
shr eax, 3
and eax, 0x1ffffffc
add eax, 0x20
and eax, 0xfffffff8
mov dword [ebp - 0x24], eax
add eax, esi
lea ecx, [eax + edi]
cmp ecx, edx
mov edx, dword [0x1ac8774]
mov dword [ebp - 0x10], edx
ja 0x19f70ac
mov ecx, edi
mov edi, eax
shl ecx, 0xd
sub edi, esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
shl edi, 0xd
mov ecx, eax
shr ecx, 3
xor ecx, edi
add edi, dword [ebp - 0x1c]
xor ecx, edx
mov edx, dword [ebp - 0x18]
xor ecx, dword [edx + 0xc]
mov dword [eax], ecx
mov ecx, dword [eax + 4]
movzx edx, bx
and ecx, 0xff0000ff
shl edx, 8
inc ebx
or edx, ecx
mov dword [ebp - 8], ebx
mov dword [eax + 4], edx
mov edx, dword [ebp + 8]
add edx, dword [ebp + 0x10]
mov byte [eax + 7], 0x80
add eax, esi
lea ecx, [esi + eax]
mov esi, dword [ebp + 0xc]
cmp ecx, edx
mov edx, dword [ebp - 0x10]
jbe 0x19f7064
mov esi, dword [ebp + 8]
lea eax, [esi + 0x1c]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
mov esi, ebx
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x18]
lea eax, [esi + 7]
shr eax, 3
push eax
push 0
push edi
call fcn.01a28e60
mov ecx, esi
add esp, 0xc
mov eax, 1
mov dword [ebp - 0x2c], eax
and ecx, 0x1f
je 0x19f70e9
shl eax, cl
shr esi, 5
dec eax
not eax
or dword [edi + esi*4], eax
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp + 8]
mov word [esi + 0x14], di
mov word [esi + 0x18], bx
mov dword [esi], edx
mov al, byte [eax + 2]
mov byte [esi + 0x1a], al
xor eax, eax
mov word [esi + 0x16], ax
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
lea eax, [edi*8]
mov word [ebp - 0x1a], ax
mov eax, dword [ebp - 0x24]
mov word [ebp - 0x1c], ax
mov eax, dword [ebp - 0x10]
xor eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x18]
xor eax, ecx
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x54]
test eax, eax
je 0x19f742c
inc word [edx + 0x60]
cmp word [edx + 0x60], 0x1c
ja 0x19f7447
lea eax, [edx + 0x50]
mov dword [ebp - 0x10], eax
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov dword [ebp - 0x20], ecx
lea eax, [ecx + ebx]
mov dword [ebp - 0x24], eax
test ebx, ebx
jle 0x1a47cd7
lea esi, [edi + 1]
mov eax, ecx
mov edx, edi
mov ebx, dword [ebp - 0x24]
mov ecx, esi
mov esi, dword [ebp - 0x10]
lock cmpxchg8b qword [esi]
cmp eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
jne 0x19f7157
cmp edx, edi
jne 0x19f7157
mov ecx, dword [ebp - 0x14]
mov edx, dword fs:[0x18]
mov eax, dword [ecx]
inc dword [eax + 0x10]
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x58], eax
movzx eax, word [edx + 0xfaa]
mov edi, eax
inc eax
movzx ecx, al
lea eax, [ecx + 1]
movzx eax, al
mov word [edx + 0xfaa], ax
xor edx, edx
movzx eax, byte [ecx + 0x1ac64c0]
movzx ecx, byte [edi + 0x1ac64c0]
shl eax, 7
or eax, ecx
mov ecx, ebx
div ecx
mov eax, esi
shl edx, 0x10
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0xc]
mov word [ebp - 0x1c], cx
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 0x1c], 1
lea esi, [edx + 0x10]
lock cmpxchg dword [esi], ecx
test byte [0x1ac84b0], 2
jne 0x19f73f4
mov eax, dword fs:[0x18]
cmp dword [0x1ac8494], 0
movzx ebx, word [eax + 0xfaa]
mov dword [ebp - 0x1c], ebx
je 0x1a47cdf
mov eax, dword [0x1ac86cc]
xor esi, esi
mov ecx, eax
and cl, 3
cmp cl, 2
jne 0x1a47d5b
test esi, esi
js 0x1a47dce
cmp esi, 0x103
je 0x1a47d76
mov eax, dword [0x1ac6480]
mov ecx, 0x7fffffed
and eax, 0x7f
mov dword [ebp - 0x28], eax
mov eax, dword [0x1ac8494]
mul ecx
add eax, 0x7fffffc3
mov esi, eax
adc edx, 0
and eax, 0x7fffffff
mov ecx, edx
shr edx, 0x1e
shrd esi, ecx, 0x1f
and esi, 0x7fffffff
shr ecx, 0x1f
add esi, eax
xor eax, eax
add esi, edx
mov edi, esi
adc eax, eax
and esi, 0x7fffffff
shrd edi, eax, 0x1f
add edi, esi
shr eax, 0x1f
cmp edi, 0x7fffffff
je 0x1a47dff
mov eax, dword [ebp - 0x28]
mov dword [0x1ac8494], edi
lea eax, [eax*4 + 0x1ac6280]
xchg dword [eax], edi
cmp byte [0x7ffe0290], 0
je 0x1a47e10
xor edx, edx
mov esi, 1
rdrand ecx
mov eax, 0
cmovb eax, esi
test eax, eax
je 0x1a47e06
xor edi, ecx
mov ecx, 0x1ac6480
mov dword [ebp - 0x24], edi
mov eax, edi
lock xadd dword [ecx], eax
cmp dword [0x1ac8494], 0
je 0x1a47e17
mov eax, dword [0x1ac86cc]
xor esi, esi
mov ecx, eax
and cl, 3
cmp cl, 2
jne 0x1a47e96
test esi, esi
js 0x1a47f0b
cmp esi, 0x103
je 0x1a47eb3
mov eax, dword [0x1ac6480]
mov ecx, 0x7fffffed
and eax, 0x7f
mov dword [ebp - 0x28], eax
mov eax, dword [0x1ac8494]
mul ecx
add eax, 0x7fffffc3
mov esi, eax
adc edx, 0
and eax, 0x7fffffff
mov ecx, edx
shr edx, 0x1e
shrd esi, ecx, 0x1f
and esi, 0x7fffffff
shr ecx, 0x1f
add esi, eax
xor eax, eax
add esi, edx
mov ecx, esi
adc eax, eax
and esi, 0x7fffffff
shrd ecx, eax, 0x1f
add ecx, esi
shr eax, 0x1f
cmp ecx, 0x7fffffff
je 0x1a47f3c
mov eax, dword [ebp - 0x28]
mov dword [0x1ac8494], ecx
lea eax, [eax*4 + 0x1ac6280]
xchg dword [eax], ecx
cmp byte [0x7ffe0290], 0
je 0x1a47f4d
xor esi, esi
jmp 0x19f73b0
rdrand edx
mov eax, 0
cmovb eax, dword [ebp - 0x2c]
test eax, eax
je 0x1a47f43
xor ecx, edx
mov edx, 0x1ac6480
mov eax, ecx
lock xadd dword [edx], eax
mov edx, dword [ebp - 0xc]
xor eax, eax
or eax, edi
and ecx, 0x7f7f7f7f
and eax, 0x7f7f7f7f
shr ebx, 3
mov dword [ebx*8 + 0x1ac64c0], ecx
mov dword [ebx*8 + 0x1ac64c4], eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
test eax, eax
jne 0x19f747b
mov eax, 0x7ffe0380
cmp byte [eax], 0
jne 0x19f7493
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + eax*4 + 0x5c4]
imul ecx, ecx, 0x68
add ecx, 0xffffff98
add ecx, eax
jmp 0x19f6ff3
mov ecx, dword [edx]
mov eax, dword [ecx + 0x14]
cmp eax, 0x20
jae 0x19f743c
add eax, 4
mov dword [ecx + 0x14], eax
xor eax, eax
mov word [edx + 0x60], ax
jmp 0x19f7151
mov ecx, dword [edx]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x19f743c
add eax, 0xfffffffc
jmp 0x19f7439
push edi
push dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov ecx, ebx
shr al, 1
and al, 3
push edi
movzx eax, al
push eax
push dword [ebp + 8]
call fcn.01a22055
test eax, eax
jne 0x19f740f
mov edx, dword [ebp - 0xc]
jmp 0x19f7004
cmp dword [eax], 0
je 0x19f7401
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x19f7406
mov eax, dword fs:[0x30]
test byte [eax + 0x240], 1
je 0x19f740f
mov ax, word [edx + 0x14]
movzx ecx, ax
movzx eax, byte [edx + 0x1b]
push eax
movzx eax, word [edx + 0x18]
mov edx, dword [edx + 4]
push eax
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [eax + 0xc]
call fcn.01a9335e
jmp 0x19f740f
lea esi, [edi - 1]
jmp 0x19f7170
push 0
push 4
push 0x1ac8494
push 0x24
push 0xffffffffffffffff
call fcn.01a22ad0
test eax, eax
jns 0x19f7224
mov esi, dword [0x7ffe0004]
mov dword [ebp - 0x28], esi
cmp esi, 0x1000000
jb 0x1a47d1c
mov eax, 0x7ffe0320
mov eax, dword [eax]
mul esi
shrd eax, edx, 0x18
shr edx, 0x18
jmp 0x1a47d51
mov edi, 0x7ffe0324
mov esi, 0x7ffe0320
mov ebx, 0x7ffe0328
mov ecx, dword [edi]
mov edx, dword [esi]
mov eax, dword [ebx]
cmp ecx, eax
je 0x1a47d39
pause
jmp 0x1a47d2b
mov ebx, dword [ebp - 0x1c]
mov eax, edx
mul dword [ebp - 0x28]
shl ecx, 8
imul ecx, dword [ebp - 0x28]
shrd eax, edx, 0x18
shr edx, 0x18
add eax, ecx
mov dword [0x1ac8494], eax
jmp 0x19f7224
mov ecx, eax
and ecx, 3
jne 0x1a47da6
mov ecx, eax
mov edx, 1
mov edi, 0x1ac86cc
lock cmpxchg dword [edi], edx
cmp eax, ecx
jne 0x1a47d5b
push 0
push 0
push 0x1ac86cc
call fcn.01a22659
push 0
test eax, eax
je 0x1a47dd4
push 0
push 0x1ac86cc
call fcn.01a15540
mov esi, eax
test esi, esi
jns 0x19f724d
mov byte [ebp - 1], 1
jmp 0x1a47dee
cmp ecx, 1
jne 0x1a47db9
mov edx, 0x1ac86cc
mov ecx, eax
call fcn.019d7ed0
jmp 0x1a47d5b
and eax, 3
cmp al, 3
jne 0x19f7239
mov esi, 0xc00000f0
jmp 0x19f7239
mov byte [ebp - 1], 0
jmp 0x1a47dee
push 4
push 0x1ac86cc
call fcn.01a15540
mov esi, eax
test esi, esi
jns 0x19f724d
mov byte [ebp - 1], 2
push 1
lea edx, [ebp - 1]
mov ecx, esi
call fcn.01a8a602
jmp 0x19f724d
xor edi, edi
jmp 0x19f72aa
inc edx
cmp edx, 0xa
jb 0x19f72d0
xor ecx, ecx
jmp 0x19f72e3
push 0
push 4
push 0x1ac8494
push 0x24
push 0xffffffffffffffff
call fcn.01a22ad0
test eax, eax
jns 0x19f7300
mov esi, dword [0x7ffe0004]
mov dword [ebp - 0x28], esi
cmp esi, 0x1000000
jb 0x1a47e54
mov eax, 0x7ffe0320
mov eax, dword [eax]
mul esi
shrd eax, edx, 0x18
shr edx, 0x18
jmp 0x1a47e8c
mov ebx, 0x7ffe0324
mov esi, 0x7ffe0320
mov edi, 0x7ffe0328
mov ecx, dword [ebx]
mov edx, dword [esi]
mov eax, dword [edi]
cmp ecx, eax
je 0x1a47e71
pause
jmp 0x1a47e63
mov edi, dword [ebp - 0x24]
mov eax, edx
mul dword [ebp - 0x28]
mov ebx, dword [ebp - 0x1c]
shl ecx, 8
imul ecx, dword [ebp - 0x28]
shrd eax, edx, 0x18
shr edx, 0x18
add eax, ecx
mov dword [0x1ac8494], eax
jmp 0x19f7300
mov ecx, eax
and ecx, 3
jne 0x1a47ee3
mov dword [ebp - 0x28], eax
mov edx, 1
mov ecx, 0x1ac86cc
lock cmpxchg dword [ecx], edx
cmp eax, dword [ebp - 0x28]
jne 0x1a47e96
push 0
push 0
push 0x1ac86cc
call fcn.01a22659
push 0
test eax, eax
je 0x1a47f11
push 0
push 0x1ac86cc
call fcn.01a15540
mov esi, eax
test esi, esi
jns 0x19f7329
mov byte [ebp - 2], 1
jmp 0x1a47f2b
cmp ecx, 1
jne 0x1a47ef6
mov edx, 0x1ac86cc
mov ecx, eax
call fcn.019d7ed0
jmp 0x1a47e96
and eax, 3
cmp al, 3
jne 0x19f7315
mov esi, 0xc00000f0
jmp 0x19f7315
mov byte [ebp - 2], 0
jmp 0x1a47f2b
push 4
push 0x1ac86cc
call fcn.01a15540
mov esi, eax
test esi, esi
jns 0x19f7329
mov byte [ebp - 2], 2
push 1
lea edx, [ebp - 2]
mov ecx, esi
call fcn.01a8a602
jmp 0x19f7329
xor ecx, ecx
jmp 0x19f7386
inc esi
cmp esi, 0xa
jb 0x19f73b0
xor edx, edx
jmp 0x19f73c4