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

Disassembly:
mov eax, 0x1005c315
call fcn.1005a9e0
sub esp, 0x30
mov byte [ebp - 0x18], dl
mov dword [ebp - 0x2c], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x1003ff0b
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x100401a4
push 0
push 0
call dword [sym.imp.GDI32.dll_GetRgnBox]
jmp 0x100401a4
mov eax, dword [0x100790bc]
test al, 1
jne 0x1003ff5a
or dword [0x100790b4], 0xffffffff
or eax, 1
mov ecx, 0x1571
mov dword [0x100790bc], eax
xor edx, edx
mov dword [0x10077d34], ecx
inc edx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x10077d34], ecx
inc edx
cmp edx, 0x270
jl 0x1003ff31
mov dword [0x10077d30], 0x270
mov dword [ebp - 0x20], 0xbacd7953
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x24], 4
mov dword [ebp - 0x1c], 0xfffffff7
mov dword [ebp - 0x28], 0
push 4
call fcn.10001b45
and dword [ebp - 4], 0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
mov ecx, 0x5eb6
push eax
call fcn.10040492
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
neg esi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sbb esi, esi
mov dword [ebp - 0x1c], eax
neg esi
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
sub edx, eax
mov eax, dword [ebp - 0x20]
neg edx
pop ecx
sbb edx, edx
inc edx
pop ecx
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setge cl
xor edx, edx
cmp esi, ecx
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x20]
setne bl
xor ecx, ecx
cmp eax, ebx
mov eax, dword [ebp - 0x20]
setl cl
xor edx, edx
cmp ecx, 0x1d91e66c
setge dl
imul eax, edx
test eax, eax
je 0x1004000a
push ecx
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
push ecx
call fcn.10040c6f
add esp, 0x10
xor ebx, ebx
jmp 0x1004005f
xor ebx, ebx
push 3
mov dword [ebp - 0x1c], ebx
pop esi
jmp 0x10040048
push ecx
lea eax, [ebp - 0x3c]
push eax
push ebx
push ecx
lea edx, [ebp - 0x1c]
call fcn.10040715
add esp, 0x10
mov dword [ebp - 0x24], ebx
jmp 0x10040040
lea eax, [ebp - 0x3c]
push eax
push ecx
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x28]
call fcn.100401ff
inc dword [ebp - 0x24]
pop ecx
pop ecx
cmp dword [ebp - 0x24], esi
jle 0x1004002b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x10040014
lea eax, [ebp - 0x11]
mov byte [ebp - 0x11], bl
push eax
mov ecx, 0x7c5d
call fcn.100401d9
pop ecx
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x3c], 0
je 0x1004007b
push dword [ebp - 0x3c]
call fcn.10044367
pop ecx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
cmp byte [0x10077b80], 0
jne 0x10040092
push ecx
push ecx
call fcn.10040a8c
call fcn.100407df
pop ecx
pop ecx
mov dword [ebp - 0x24], 0x30f9
cmp dword [ebp - 0x24], 0x3337
jle 0x100400c9
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10076818
xor eax, esi
cdq
push edx
push eax
call fcn.10001a30
inc edi
cmp edi, 0x3bff
jl 0x100400a6
inc esi
cmp esi, 0x1eee
jl 0x100400a4
push ecx
call fcn.100403e4
mov dword [ebp - 4], 1
cmp dword [ebp - 0x24], 0x2e37
pop ecx
jge 0x100400ef
mov edx, str.eqzlib_mar_zmqey_nzkuhsddu_bzqktta_gfx_uwwixupn_zmfexab_vlysjf_xnbeluq_fry
mov ecx, 0x10076818
call fcn.1000349f
mov eax, dword [0x10077d30]
cmp eax, 0x270
jne 0x10040155
mov edx, 0x10077d38
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, 0x100786f8
jl 0x10040100
jmp 0x10040161
cmp eax, 0x4e0
jb 0x10040166
call fcn.10041828
mov eax, dword [0x10077d30]
mov ecx, dword [eax*4 + 0x10077d34]
inc eax
mov dword [0x10077d30], eax
mov eax, ecx
shr eax, 0xb
and eax, dword [0x100790b4]
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 - 0x2c]
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