Function at 0x1000cddb
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov eax, 0x1005d12f
call fcn.1005c4f8
sub esp, 0xcc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x38], dl
mov dword [ebp - 0x84], ecx
test dl, dl
je 0x1000cf04
mov dword [ebp - 0x24], 0x34e
cmp dword [ebp - 0x24], 0x393
jle 0x1000ce71
mov esi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], 0x3901
mov edi, ebx
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edi
mov esi, edi
mov edi, 0x1192
mov eax, ebx
mov ecx, 0x10078fb8
xor eax, esi
cdq
push edx
push eax
call fcn.10001d2f
dec esi
dec edi
jne 0x1000ce32
mov edi, dword [ebp - 0x20]
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x50ba
jl 0x1000ce2b
dec ebx
dec dword [ebp - 0x18]
push 0
mov dword [ebp - 0x1c], ebx
pop ebx
jne 0x1000ce23
mov esi, dword [ebp - 0x14]
inc esi
mov dword [ebp - 0x14], esi
cmp esi, 0x5f8f
jl 0x1000ce19
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x297
jge 0x1000ce8c
mov edx, str.oatc_uqoi_pdelsclc_hrx_avteiqag_tbfxg_pyzt_luhessu_rzubplr_kctbr_szc_jfbcgcjv_fargvdhk_tbehw
mov ecx, 0x10078fb8
call fcn.10003c4d
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x14]
mov dword [esi], ebx
cmp dword [esi], 0xfffffff6
jg 0x1000d495
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x70], 0x83111738
push 1
call fcn.1000c9d4
mov dword [esp], 0x60c0
lea eax, [ebp - 0x70]
push ecx
push dword [ebp + 0x10]
mov cl, 1
push 0x5989
push 0x27d1
push eax
push edi
call fcn.1000d4a6
add esp, 0x1c
dec dword [esi]
cmp dword [esi], 0xfffffff6
jle 0x1000cea4
jmp 0x1000d495
mov dword [ebp - 0x18], 0x256915a
mov dword [ebp - 0x18], ebx
jmp 0x1000cf1e
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x30], 0xfff8
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x1000cf10
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], ebx
jl 0x1000cfef
mov dword [ebp - 0x1c], 0xcd53bc6e
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x1000cfe6
mov dword [ebp - 0x14], ebx
jmp 0x1000cf56
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0x651328f6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x1000cf48
mov dword [ebp - 0x14], ebx
jmp 0x1000cf6f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], 0x5ff44426
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1000cf61
mov dword [ebp - 0x40], ebx
cmp dword [ebp - 0x40], ebx
jl 0x1000cfdd
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x30], 0x54bc
jg 0x1000cfd1
mov eax, dword [ebp - 0x40]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x30]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
cmp eax, 0xcee6
mov eax, dword [ebp - 0x40]
setl cl
xor edx, edx
sub ecx, eax
mov eax, dword [ebp - 0x40]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
setl cl
imul eax, ecx, 0x273d
cmp eax, dword [ebp - 0x40]
jne 0x1000cfce
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x30], ebx
jne 0x1000cfd1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x60], 1
dec dword [ebp - 0x40]
jns 0x1000cf7d
dec dword [ebp - 0x1c]
jns 0x1000cf43
dec dword [ebp - 0x18]
jns 0x1000cf30
push 0x176e
push ebx
lea edx, [ebp - 0x26]
mov byte [ebp - 0x26], bl
mov ecx, 0x175c
call fcn.1000d4dd
mov eax, dword [0x1013ebd8]
xor esi, esi
pop ecx
inc esi
pop ecx
test al, 1
jne 0x1000d054
or eax, esi
mov ecx, 0x1571
or dword [0x1013ebd4], 0xffffffff
mov edx, esi
mov dword [0x1013ebd8], eax
mov edi, 0x270
mov dword [0x1013d854], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x1013d854], ecx
inc edx
cmp edx, edi
jl 0x1000d033
mov dword [0x1013d850], edi
mov dword [ebp - 0x14], 0x5c68ec0a
lea ecx, [ebp - 0x90]
push 3
call fcn.10001eb9
mov dword [ebp - 4], 2
lea eax, [ebp - 0xb0]
push dword [ebp - 0x34]
movdqa xmm0, xmmword [0x1006bd80]
lea ecx, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xc0]
mov dword [ebp - 0x6c], ebx
push eax
push ebx
movdqu xmmword [ebp - 0xc0], xmm0
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
call fcn.100045dd
mov byte [ebp - 4], 3
mov dword [ebp - 0x1c], 0x6c7a88ff
mov dword [ebp - 0x20], 0x5e8e
cmp dword [ebp - 0x20], 0x5fd7
jle 0x1000d177
push ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov eax, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x24], ebx
cdq
idiv edi
mov dword [ebp - 0x14], ebx
mov edi, ebx
mov eax, edx
mov dword [ebp - 0x80], eax
mov ecx, edi
shl eax, cl
lea ecx, [ebp - 0xd8]
cdq
push edx
push eax
call fcn.10001a85
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000d0fb
mov eax, dword [eax]
push eax
call fcn.10045794
pop ecx
push ebx
push esi
lea ecx, [ebp - 0xd8]
call fcn.1000224a
mov eax, dword [ebp - 0x80]
inc edi
cmp edi, 0x550b
jl 0x1000d0df
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x3a54
jl 0x1000d0d2
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x7927
jl 0x1000d0cd
push 0x2114
push 0xcfb
push ebx
push ebx
push 0x19c5
push 0x22cb
push 0x1c21
push 0x1384
push 0xff
push 0x1bc2
push 0xa70
push 0x178f
push 0x15b5
call dword [sym.imp.GDI32.dll_StretchDIBits]
push dword [ebp - 0x34]
movdqa xmm0, xmmword [0x1006bd90]
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x5c], ebx
push eax
push ebx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x58], ebx
movdqu xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x54], ebx
call fcn.100045dd
cmp dword [ebp - 0x20], 0x5b33
jge 0x1000d1be
push str.jwk_gwe_zeapcujlg_bclnmwjx_wbggtkw_pljf_wpfha_abaldk_gng
call fcn.10045794
pop ecx
push ebx
push ecx
push ecx
push 0x7bd2
push 0x3e7d
push ecx
mov dword [ebp - 4], 4
lea edx, [ebp - 0x90]
mov dword [ebp - 0x24], 0xa95534fd
lea ecx, [ebp - 0x2c]
call fcn.1000c6cc
add esp, 0x18
mov dword [ebp - 0x2c], ebx
jmp 0x1000d1fa
mov eax, dword [ebp - 0x2c]
mov dword [ebp + eax*4 - 0x50], esi
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 2
jl 0x1000d1f0
mov dword [ebp - 0x14], 0xf
jmp 0x1000d229
push ebx
lea eax, [ebp - 0x90]
mov dword [ebp - 0x34], 0x51ad386c
push eax
push esi
xor dl, dl
lea ecx, [ebp - 0x34]
call fcn.1000d7e8
add esp, 0xc
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 5
jge 0x1000d209
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
mov edi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x14]
setne dl
xor ecx, ecx
test edx, edx
setne cl
mov dword [edi + 0xc], edx
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x1c]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, 0x22c7
setne cl
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, dword [eax]
je 0x1000d27c
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x5c]
push 3
cmp dword [eax], esi
mov eax, dword [ebp - 0x14]
setg cl
sub ecx, eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
pop ecx
sub ecx, eax
add ecx, dword [ebp - 0x14]
je 0x1000d2f5
mov dword [ebp - 0x20], 0x9e98c534
xor ecx, ecx
mov dword [ebp - 0x18], 0xe54fd57e
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
cmp eax, 0xfffffffb
setne cl
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [edi + 0xc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
jmp 0x1000d311
push ecx
lea eax, [ebp - 0x25]
mov byte [ebp - 0x25], bl
push eax
push 0x160c
push ecx
push ebx
mov ecx, 0x7377
call fcn.1000c8c8
add esp, 0x14
lea ecx, [ebp - 0x5c]
call fcn.10001f3c
lea ecx, [ebp - 0x6c]
call fcn.10001f3c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
call fcn.10001f3c
cmp byte [0x1007a100], 0
jne 0x1000d36d
push ebx
mov edx, 0x315b
mov ecx, 0x6937
call fcn.1000e73a
push 0x5748
push 0x1013d850
push 0x5b97
push ebx
mov edx, 0x2b30
call fcn.1000f11f
add esp, 0xc
call fcn.1000d4fa
pop ecx
pop ecx
push dword [ebp - 0x34]
movdqa xmm0, xmmword [0x1006bdb0]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x7c], ebx
push eax
push ebx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x78], ebx
movdqu xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x74], ebx
call fcn.100045dd
push 0x192b
push 0x33fd
push 0x7750
lea eax, [ebp - 0x7c]
mov dword [ebp - 4], 7
push eax
push 0x7a3d
push 0x7d77
push ebx
push 0x72ad
push 0x5b8f
push ebx
push esi
push 0x5853
push 0x7af7
push 0x109e
mov edx, 0x31c2
mov ecx, 0x53de
call fcn.1000df9f
add esp, 0x38
lea ecx, [ebp - 0x7c]
call fcn.10001f3c
mov eax, dword [0x1013d850]
cmp eax, 0x270
jne 0x1000d446
mov edx, 0x1013d858
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, 0x1013e218
jl 0x1000d40b
jmp 0x1000d452
cmp eax, 0x4e0
jb 0x1000d457
call fcn.1000f6e3
mov eax, dword [0x1013d850]
mov edx, dword [eax*4 + 0x1013d854]
inc eax
mov dword [0x1013d850], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x1013ebd4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, dword [ebp + 0xc]
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret