Function at 0x14004d190
Capabilities:
Encode data using xor
Get thread local storage value

Disassembly:
sub rsp, 0x88
mov qword [rsp + 0x80], rcx
cmp qword [rcx], 0
jle 0x14004d587
mov eax, dword [0x1402aa128]
mov edx, dword [0x1402aa12c]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
mov edx, 0xbbb44662
xor edx, 0x444bb99d
mov ecx, eax
xor ecx, edx
and ecx, 0xb92e7e29
mov edx, 0xffffffff
xor edx, 0xb92e7e29
and eax, edx
sub eax, ecx
sub eax, 0x763bed19
mov ecx, 0x9d2aef0c
xor ecx, 0xe2d8623
and eax, ecx
cmp eax, 0x836b19b0
jb 0x14004d89c
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x1402aa130]
mov r8d, dword [0x1402aa134]
mov edx, eax
add edx, 1
xor eax, 0xffffffff
or eax, r8d
add eax, edx
mov r8d, 0xcb710eee
xor edx, edx
div r8d
xor eax, 0x94e67415
sub eax, 0xa7ae4234
sub eax, 0xb9ed2ff9
add eax, 0xa7ae4234
add rcx, 8
mov qword [rsp + 0x78], rcx
cmp eax, 0x5580a100
jb 0x14004d201
xor eax, eax
mov qword [rsp + 0x70], rax
jmp 0x14004d262
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x68], rax
mov eax, dword [0x1402aa138]
mov ecx, dword [0x1402aa13c]
xor ecx, 0xa05e18a8
and eax, ecx
add eax, 0x9abfa6da
mov ecx, 0xc1168b59
xor ecx, 0xaf85b22e
sub eax, ecx
sub eax, 0x9abfa6da
sub eax, 0x9f44f877
mov ecx, 0xe04b75e7
xor ecx, 0x18c8aaa3
xor eax, ecx
cmp eax, 0x3df6f429
je 0x14004d8a5
mov rcx, qword [rsp + 0x68]
mov eax, dword [0x1402aa140]
xor edx, edx
div dword [0x1402aa144]
mov r8d, 0x32a1260
xor edx, edx
div r8d
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xa85bef42
mov edx, 0xffffffff
xor edx, 0x7a898b88
or eax, r8d
or edx, 0x7a898b88
xor eax, 0xffffffff
and eax, edx
mov r8d, 0x1075eaef
xor r8d, 0xfdb614b2
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x60], edx
mov edx, 0xb48b4c11
xor edx, 0xb331b912
mov dword [rsp + 0x5c], edx
mov rax, qword [rax]
mov rax, qword [rax + rcx*8 + 8]
mov qword [rsp + 0x50], rax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x5c]
mov eax, dword [rsp + 0x60]
cmp rdx, 0
sete dl
mov byte [rsp + 0x67], dl
cmp eax, ecx
ja 0x14004d2b4
mov al, byte [rsp + 0x67]
test al, 1
jne 0x14004d54e
jmp 0x14004d371
mov rcx, qword [rsp + 0x50]
mov rax, rcx
and rax, 0xfffffffffffffff0
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
movabs rcx, 0x5437d5f8aae5dcfd
movabs rdx, 0x5437d5f8aae5dced
xor rcx, rdx
cmp rax, rcx
jb 0x14004d444
mov r8, qword [rsp + 0x48]
movabs rcx, 0x296627c059c42fd
movabs rax, 0xfd699d83fa63bd0d
xor rcx, rax
mov rax, r8
and rax, rcx
mov rcx, r8
or rcx, 0xfffffffffffffff0
add rax, rcx
mov qword [rsp + 0x38], rax
mov rdx, rax
xor rdx, 0xffffffffffffffff
mov rcx, r8
and rcx, rdx
xor r8, 0xffffffffffffffff
mov rdx, rax
and rdx, r8
or rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14004d419
jmp 0x14004d423
call fcn.14000ee80
jmp 0x14004d54e
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
mov qword [rdx], rcx
mov r8, qword [rax]
xor ecx, ecx
call fcn.14001d8a6
jmp 0x14004d54e
mov ecx, dword [0x1402aa148]
mov edx, dword [0x1402aa14c]
mov r8d, ecx
xor r8d, edx
xor r8d, 0xffffffff
mov eax, edx
and eax, r8d
shl eax, 1
sub eax, edx
sub ecx, eax
mov eax, 0x24c7578f
xor eax, 0x43d125fe
and ecx, eax
mov eax, 0x60256e64
xor eax, 0x30d205cb
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xdacff1ef
mov edx, 0xffffffff
xor edx, 0xdacff1ef
and ecx, edx
or eax, ecx
cmp eax, 0x9413582b
je 0x14004d8ae
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov ecx, dword [0x1402aa150]
xor ecx, 0x55dd05a
mov r9d, dword [0x1402aa154]
mov r8d, 0xbd898082
xor r8d, 0x90ee7596
xor r9d, r8d
mov r10d, ecx
xor r10d, r9d
xor r10d, 0xffffffff
mov r8d, r9d
and r8d, r10d
shl r8d, 1
sub r8d, r9d
sub ecx, r8d
sub ecx, 0xfb8e90d2
mov r8d, 0xffffffff
xor r8d, 0xb088d381
add ecx, r8d
add ecx, 1
mov r8d, 0xe1fd5638
xor r8d, 0xd4826edd
sub ecx, r8d
mov dword [rsp + 0x34], ecx
mov r8, qword [rax]
mov ecx, 1
call fcn.14001d8a6
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rax]
mov rcx, qword [rax + rcx*8 + 8]
call fcn.14001d970
mov eax, dword [rsp + 0x34]
cmp eax, 0x26f7724
jb 0x14004d8ae
jmp 0x14004d54e
mov rcx, qword [rsp + 0x80]
mov rax, qword [rsp + 0x68]
movabs rdx, 0x3e2ff3b31157cb30
add rax, rdx
add rax, 1
movabs rdx, 0x3e2ff3b31157cb30
sub rax, rdx
cmp rax, qword [rcx]
mov qword [rsp + 0x70], rax
jl 0x14004d262
mov eax, dword [0x1402aa158]
xor eax, 0x8bd3b885
mov r8d, dword [0x1402aa15c]
mov ecx, 0xf87a2f13
xor ecx, 0x52cfaa28
xor r8d, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x23153ee8
xor ecx, 0x78eedf6
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0x2825d4fc
mov edx, 0xf5586774
xor edx, 0x983096b
mov eax, 0xe41f1bca
xor eax, 0x1be0e435
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x863e5c71
je 0x14004d8b7
mov rcx, qword [rsp + 0x80]
mov eax, dword [0x1402aa160]
mov edx, dword [0x1402aa164]
sub eax, 0x70aa4d82
add eax, edx
add eax, 0x70aa4d82
mov r8d, 0xd56eaa78
xor r8d, 0xddd50bc3
xor edx, edx
div r8d
xor edx, edx
sub edx, 0x99827fea
sub eax, edx
add eax, 0x898dabe0
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x28], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x33], cl
cmp eax, 0x29b11a90
ja 0x14004d60c
mov al, byte [rsp + 0x33]
test al, 1
jne 0x14004d798
jmp 0x14004d67d
mov ecx, dword [0x1402aa168]
mov edx, dword [0x1402aa16c]
mov r8d, 0x5fe20a26
xor r8d, 0xa01df5d9
mov eax, ecx
xor eax, r8d
mov r9d, 0x8692345d
xor r9d, 0x796dcba2
mov r8d, edx
xor r8d, r9d
and eax, r8d
mov r8d, 0x7bdf5723
xor r8d, 0x8420a8dc
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
xor eax, 0xffffffff
mov edx, 0xbc02525
xor edx, 0xf43fdada
xor ecx, edx
and eax, ecx
mov ecx, 0x4427b763
xor edx, edx
div ecx
sub eax, 0x56965d12
add eax, 0xb22cfef5
mov ecx, 0x7da06046
xor ecx, 0x2b363d54
add eax, ecx
mov ecx, 0x89907766
xor ecx, 0xae260286
xor eax, ecx
mov ecx, 0x153f297d
xor ecx, 0x96b855cc
cmp eax, ecx
je 0x14004d8c0
mov ecx, dword [0x1402aa170]
mov edx, dword [0x1402aa174]
mov r8d, ecx
xor r8d, edx
xor r8d, 0xffffffff
mov eax, edx
and eax, r8d
shl eax, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
and eax, 0x671bc4f0
or ecx, 0x671bc4f0
add eax, ecx
mov ecx, 0xa02e1a6d
xor ecx, 0xdc1bcb06
or eax, ecx
mov ecx, 0x32b9f6d0
xor ecx, 0x4374a7b3
or eax, ecx
mov dword [rsp + 0x24], eax
mov ecx, dword [0x1402d10b0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, qword [rsp + 0x28]
mov rcx, rax
add rcx, 0x68
call fcn.140017ba0
mov eax, dword [rsp + 0x24]
cmp eax, 0x64ffb0e2
je 0x14004d718
jmp 0x14004d798
mov eax, dword [0x1402aa178]
mov r8d, dword [0x1402aa17c]
xor r8d, 0x19898b19
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
and eax, 0x263edad8
mov ecx, 0xffffffff
xor ecx, 0x3c6b153f
add eax, ecx
add eax, 1
mov ecx, eax
and ecx, 0xbd764fd7
shl ecx, 1
mov edx, 0xb6e2134f
xor edx, 0xb945c98
xor eax, edx
add eax, ecx
cmp eax, 0x2ba25809
jbe 0x14004d8c9
mov eax, dword [0x1402aa180]
xor eax, 0x9ba40b
mov edx, dword [0x1402aa184]
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
add eax, 0x6ec080af
mov ecx, eax
xor ecx, 0xc4fac672
mov edx, 0xffffffff
xor edx, 0xc4fac672
and eax, edx
shl eax, 1
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0x7402777b
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x7caa6003
xor r8d, 0x83559ffc
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x7402777b
or eax, 0x7402777b
imul eax, edx
add eax, ecx
mov ecx, 0x776ec48b
xor ecx, 0x18402996
cmp eax, ecx
jbe 0x14004d8c9
add rsp, 0x88
ret
sub dword [rbp + 0x58], ebx
invalid
mov ebp, esp
xlatb
add ch, cl
invalid
xchg ebp, eax
cld
wait
test al, 0xe9
jmp 0x14004d8b0
stosd dword [rdi], eax
sbb byte [rsi], bl
stc
jmp 0x14004d60c
retf
test byte [rsi - 4], 0xe9
cmp bh, bh
invalid