Function at 0x1001cfcc
Capabilities:
Encode data using xor
Encrypt data using speck
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1005fe72
call fcn.1005f0d0
sub esp, 0x174
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x48], dl
mov dword [ebp - 0x54], ecx
test dl, dl
je 0x1001d227
push dword [ebp - 0x6c]
movdqa xmm0, xmmword [0x1006d1f0]
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x134]
mov dword [ebp - 0x44], 0xadae
push eax
mov dword [ebp - 0x50], 0xffffffff
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x18], ebx
push ebx
movdqu xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
call fcn.1001a7e8
mov dword [ebp - 4], ebx
mov ecx, 0xecba2afe
mov dword [ebp - 0x5c], 0x9032f829
mov eax, dword [ebp - 0x44]
cmp ecx, eax
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x44]
cmp ecx, eax
setg dl
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x84]
mov dword [eax + 0xc], ecx
test ecx, ecx
je 0x1001d0f2
push ecx
lea eax, [ebp - 0x90]
mov dword [ebp - 0x8c], 0xbc22
push eax
push 0x11e0
lea eax, [ebp - 0xa8]
mov dword [ebp - 0xa8], 0x28f0bd90
push eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x9c], 0xda73a151
push eax
push 0x1932
push 1
lea eax, [ebp - 0xa4]
mov dword [ebp - 0x90], 0x7557bc77
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0xa4], 9
push eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001cab6
add esp, 0x30
jmp 0x1001d110
push 0x748
push 0x18a7
push 0x1ae7
push 1
mov edx, 0x1002
call fcn.1001cdb9
add esp, 0x10
lea ecx, [ebp - 0x84]
call fcn.10015361
mov dword [ebp - 0xf0], 0xf
mov dword [ebp - 0xf4], ebx
mov byte [ebp - 0x104], bl
sub esp, 0x28
mov dword [ebp - 4], 1
lea edx, [ebp - 0x54]
lea ecx, [ebp - 0x104]
call fcn.1001ccdd
mov eax, dword [0x1007c78c]
add esp, 0x28
test al, 1
jne 0x1001d17a
or eax, 1
mov dword [0x1007c78c], eax
push 0xc711
mov byte [ebp - 4], 2
call fcn.10036007
mov byte [0x1007b3f2], al
mov byte [ebp - 4], 1
mov eax, dword [0x1007c78c]
pop ecx
test al, 2
jne 0x1001d19e
or eax, 2
mov dword [0x1007c78c], eax
push 0x7101
mov byte [ebp - 4], 3
call fcn.10036007
pop ecx
mov byte [0x1007c790], al
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x54]
test esi, esi
je 0x1001d1fe
call fcn.1001b298
push 0x34
pop ecx
xor edx, edx
div ecx
push 0x1101
push 0x1751
lea eax, [ebp - 0x88]
mov dword [ebp - 0x88], edx
push eax
push 0x734
push 0x34da
push 1
push 1
lea eax, [ebp - 0x104]
mov edx, 0x1007c790
push eax
push 0x1fbc
push 1
push 0x1007b3f2
mov ecx, 0x4945
call fcn.1001cef7
add esp, 0x2c
dec esi
jne 0x1001d1a5
mov ecx, dword [ebp + 0x14]
lea eax, [ebp - 0x104]
cmp ecx, eax
je 0x1001d214
push 0xffffffffffffffff
push ebx
push eax
call fcn.10017446
push ebx
push 1
lea ecx, [ebp - 0x104]
call fcn.10015cff
jmp 0x1001db31
mov eax, dword [ebp + 0x18]
lea ecx, [ebp - 0xb8]
push 1
push 0x2c2
mov dword [ebp - 0x24], eax
xor dl, dl
lea eax, [ebp - 0xac]
mov dword [ebp - 0xac], 0x31713b91
push eax
push 0x7766
lea eax, [ebp - 0x94]
mov dword [ebp - 0x94], 0xfff8
push eax
push 0x131
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb4], 0xfffffffd
push eax
push 0x39
push 0x64f5
push 0x1ff1
push 0x3724
push ebx
push 0x19ad
mov dword [ebp - 0xb8], 0x9d982735
call fcn.1001be5b
mov eax, dword [0x1007c78c]
add esp, 0x34
test al, 4
jne 0x1001d2f1
or dword [0x1007c784], 0xffffffff
or eax, 4
mov ecx, 0x1571
mov dword [0x1007c78c], eax
xor edx, edx
mov dword [0x1007b404], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1007b404], ecx
inc edx
cmp edx, 0x270
jl 0x1001d2c8
mov dword [0x1007b400], 0x270
push 2
lea ecx, [ebp - 0x68]
call fcn.100152de
push 3
lea ecx, [ebp - 0xd4]
mov dword [ebp - 4], 4
call fcn.100152de
push 3
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 5
call fcn.100152de
push 0x3aae
push 0x6616
push 0x77ff
push 0x2a25
push 0x5fc6
push ebx
push ebx
push 0x471d
lea eax, [ebp - 0x68]
mov byte [ebp - 4], 6
push eax
push 1
mov dword [ebp - 0x18], 0xfffffff8
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x40], 0xc248bdd0
mov edx, 0x38ef
push 0x7856
call fcn.1001cef7
mov dword [ebp - 0x20], 0x51a2
add esp, 0x2c
cmp dword [ebp - 0x20], 0x5487
jle 0x1001d3d0
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
and eax, esi
mov ecx, 0x10079cd8
and eax, edi
and eax, ebx
cdq
push edx
push eax
call fcn.10015096
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x1ed4
jl 0x1001d38c
inc esi
push 0
pop ebx
cmp esi, 0x62b5
jl 0x1001d384
inc edi
cmp edi, 0x3859
jl 0x1001d382
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x5e78
jl 0x1001d380
push ecx
push 0x23ea
lea eax, [ebp - 0x30]
push eax
push 0x3edf
push 0x145d
lea eax, [ebp - 0xd4]
push eax
push ebx
push 0x462b
push 0x40f7
push 0x1646
push 0x2241
push 0x3e87
call fcn.1001cab6
add esp, 0x30
mov byte [ebp - 4], 7
cmp dword [ebp - 0x20], 0x4e44
jge 0x1001d44d
mov edx, str.upaccw_zpcefqmwl_omugsne_syclj_kbwuth
mov ecx, 0x10079cd8
call fcn.1001996e
jmp 0x1001d44d
mov dword [ebp - 4], 6
mov dword [ebp - 0x30], ebx
jmp 0x1001d46c
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xe0]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 3
jl 0x1001d459
mov eax, dword [ebp - 0x68]
mov esi, 0xffff
mov dword [eax], 0xffffffec
mov eax, dword [ebp - 0x68]
cmp dword [eax], 0x1b
jg 0x1001d625
mov dword [ebp - 0x2c], 0x7689351f
mov dword [ebp - 0x4c], 3
mov dword [ebp - 0x58], 0x486cae8e
mov dword [ebp - 0x24], 0x5f9ba4ae
mov dword [ebp - 0x2c], 0xfffffffa
cmp dword [ebp - 0x2c], 0xffffffe2
jle 0x1001d61b
mov edi, dword [ebp - 0xe0]
mov dword [ebp - 0x38], 9
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], 0x856065d6
push 2
call fcn.100152de
push 0x7fcf
lea eax, [ebp - 0x110]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x124]
xor dl, dl
push eax
push 1
mov cl, 1
call fcn.1001c2ad
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
push ecx
push 0x62f6
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0xd4]
push eax
push ecx
push ebx
call fcn.1001ce3f
mov eax, dword [ebp - 0x2c]
xor edx, edx
imul ecx, dword [ebp - 0x24], 0xa093
add esp, 0x2c
mov esi, dword [ebp - 0xd4]
mov dword [esi + 8], 1
mov eax, dword [ebp - 0x68]
cmp ecx, dword [eax]
setge dl
xor ecx, ecx
mov dword [ebp - 0x118], edx
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x58]
cmp eax, 0xffff0001
setl cl
lea eax, [ecx + 0x2551ad04]
mov ecx, dword [ebp - 0x2c]
imul ecx, eax
test ecx, ecx
jne 0x1001d599
cmp dword [esi + 8], ebx
jne 0x1001d599
mov edx, ebx
jmp 0x1001d59c
xor edx, edx
inc edx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
cmp edx, eax
mov dword [edi + 4], edx
mov esi, 0xffff
setle cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
cmp esi, eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x4c]
cmp eax, ecx
setge dl
mov dword [ebp - 0x14], edx
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, 0xb61f
mov eax, dword [ebp - 0x38]
setne dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
add eax, 7
jne 0x1001d5f1
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x110]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov byte [ebp - 4], 6
call fcn.10015361
dec dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xffffffe2
jg 0x1001d4bf
mov eax, dword [ebp - 0x68]
inc dword [eax]
jmp 0x1001d480
lea ecx, [ebp - 0xe0]
call fcn.10015361
lea ecx, [ebp - 0xd4]
call fcn.10015361
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.10015361
mov dword [ebp - 0x18], 0xb42
cmp dword [ebp - 0x18], 0xe2b
jle 0x1001d6bb
mov edx, ebx
mov dword [ebp - 0x14], ebx
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
lea ecx, [ebp - 0x14c]
xor eax, edx
cdq
push edx
push eax
call fcn.10001ac3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001d680
mov eax, dword [eax]
push eax
call fcn.1004881f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x14c]
call fcn.10015918
mov edx, dword [ebp - 0x14]
inc edi
cmp edi, 0x7f1
jl 0x1001d660
inc esi
cmp esi, 0x6451
jl 0x1001d65e
inc edx
mov dword [ebp - 0x14], edx
cmp edx, 0x64f7
jl 0x1001d65c
mov esi, 0xffff
cmp dword [ebp - 0x18], 0x942
jge 0x1001d6cf
push str.iqdblvbe_ydg_fpbsaszfu_vadhyrj_cnjaypwpm_tcz_ftjlgxq_awz
call fcn.1004881f
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xec]
mov dword [ebp - 0x28], 0x9841b3c6
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x1c], 0x85ed0657
mov dword [ebp - 0x18], ebx
push 3
call fcn.100152de
mov dword [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0x24], esi
inc ecx
mov dword [ebp - 0x3c], ebx
jmp 0x1001d717
mov eax, dword [ebp - 0x3c]
mov dword [ebp + eax*4 - 0x98], ecx
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ecx
jl 0x1001d70a
push ebx
push 0xf6d
push 0x4b46
push 0x3a44
push 0x2810
push 0x5f62
push 0x6efc
lea eax, [ebp - 0x3c]
mov dl, cl
push eax
lea eax, [ebp - 0xec]
push eax
push 0x372e
push 0x735b
push ecx
push 0x2a42
mov ecx, 0x5236
call fcn.1001be5b
add esp, 0x34
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], 0xffffffe8
je 0x1001d960
push 4
lea ecx, [ebp - 0x78]
call fcn.100152de
mov byte [ebp - 4], 0xd
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1001d7b0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x78]
mov dword [eax + ecx*4], 0x102d149f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1001d7a0
mov eax, dword [ebp - 0x78]
add eax, 0xc
mov dword [eax], 0xffffffea
cmp dword [eax], 0x15
jle 0x1001d94c
mov dword [ebp - 0x40], 9
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1001d7ee
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa0], 0xf8f9ed02
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1001d7dd
inc dword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x78]
neg edx
sbb edx, edx
neg edx
cmp dword [ecx + 4], ebx
jne 0x1001d817
mov eax, dword [ebp - 0x40]
cmp eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x78]
jle 0x1001d817
mov esi, ebx
jmp 0x1001d81a
xor esi, esi
inc esi
mov eax, dword [ecx + 8]
mov dword [ebp - 0x1c], eax
mov eax, 0xfff6
mov ecx, dword [ebp - 0x1c]
cmp eax, esi
sbb eax, eax
neg eax
imul eax, eax, 0x65c
neg ecx
sbb ecx, ecx
inc ecx
sub ecx, eax
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp edx, ecx
setg al
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], 0xc
jl 0x1001d93f
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], 0x2861
cmp dword [ebp - 0x14], 0x2bd2
jle 0x1001d8b4
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x164]
and eax, esi
cdq
push edx
push eax
call fcn.10001ac3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001d88d
mov eax, dword [eax]
push eax
call fcn.1004881f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x164]
call fcn.10015918
inc edi
cmp edi, 0x7c17
jl 0x1001d871
inc esi
cmp esi, 0x344a
jl 0x1001d86f
cmp dword [ebp - 0x1c], ebx
jne 0x1001d8c3
mov dword [ebp - 0xa0], 0xfffffff7
cmp dword [ebp - 0x18], ebx
je 0x1001d8d8
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 0xbc]
je 0x1001d8d8
xor edx, edx
inc edx
jmp 0x1001d8da
mov edx, ebx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0xfffffff8
setne al
imul eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0xb0]
jg 0x1001d902
cmp dword [ebp - 0x5c], ebx
je 0x1001d902
xor edx, edx
inc edx
jmp 0x1001d904
mov edx, ebx
mov eax, dword [ebp - 0xc0]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 1
setl al
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x14], 0x25bf
jge 0x1001d930
push str.pbtvnlvs_omshh_bkmknbv_zrlyecpeh_lodkq_luuexkapf
call fcn.1004881f
pop ecx
mov dword [ebp - 4], 0xd
inc dword [ebp - 0x1c]
jmp 0x1001d850
mov eax, dword [ebp - 0x78]
add eax, 0xc
inc dword [eax]
jmp 0x1001d7c2
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xc
call fcn.10015361
dec dword [ebp - 0x28]
jmp 0x1001d768
cmp dword [ebp - 0x28], ebx
je 0x1001d9cc
cmp dword [ebp - 0x1c], ebx
jne 0x1001d973
cmp dword [ebp - 0x28], ebx
jne 0x1001d973
mov ecx, ebx
jmp 0x1001d976
xor ecx, ecx
inc ecx
xor eax, eax
cmp ecx, 0x86a0
setge al
imul eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 0x20]
test eax, eax
jne 0x1001d996
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
test eax, eax
mov eax, dword [ebp - 0x18]
sets dl
mov dword [ebp - 0x98], eax
xor ecx, ecx
cmp eax, edx
mov eax, dword [ebp - 0xec]
setg cl
cmp ecx, dword [eax]
jne 0x1001d9cc
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jne 0x1001d9ef
push ecx
push 0x454
sub esp, 0x10
mov dword [ebp - 0x6c], ebx
lea edx, [ebp - 0x6c]
xor cl, cl
call fcn.1001bbc3
add esp, 0x18
jmp 0x1001da74
mov byte [ebp - 0x31], bl
mov dword [ebp - 0x24], 0x5be7
cmp dword [ebp - 0x24], 0x5ebd
jle 0x1001da49
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [ebp - 0x17c]
xor eax, esi
cdq
push edx
push eax
call fcn.10001ac3
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001da22
mov eax, dword [eax]
push eax
call fcn.1004881f
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x17c]
call fcn.10015918
inc edi
cmp edi, 0x291c
jl 0x1001da06
inc esi
cmp esi, 0x7f8c
jl 0x1001da04
push 0x4031
lea eax, [ebp - 0x31]
mov ecx, 0x30fa
push eax
push ebx
call fcn.1001b724
add esp, 0xc
cmp dword [ebp - 0x24], 0x5b2b
jge 0x1001da74
push str.gsk_lkq_ztsiu
call fcn.1004881f
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xec]
call fcn.10015361
push 0x1007b400
push 1
mov ecx, 0x1007ae29
call fcn.1001c1bc
mov eax, dword [0x1007b400]
pop ecx
pop ecx
cmp eax, 0x270
jne 0x1001dae2
mov edx, 0x1007b408
mov ecx, dword [edx - 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, dword [edx - 4]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x630]
xor eax, ecx
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x1007bdc8
jl 0x1001daa7
jmp 0x1001daee
cmp eax, 0x4e0
jb 0x1001daf3
call fcn.1001dc59
mov eax, dword [0x1007b400]
mov ecx, dword [eax*4 + 0x1007b404]
inc eax
mov dword [0x1007b400], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x1007c784]
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret