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

Disassembly:
mov eax, 0x100625c2
call fcn.100608e8
sub esp, 0x110
mov byte [ebp - 0x4c], cl
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
test dl, dl
je 0x100405a4
cmp byte [ebp + 8], 0
je 0x100404e4
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x100404c5
push 1
mov ecx, 0x71b3
call fcn.1004015f
mov dword [ebp - 0x14], 0x525a
xor ebx, ebx
cmp dword [ebp - 0x14], 0x539f
pop ecx
jle 0x100404aa
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov esi, ecx
mov dword [ebp - 0x30], ebx
and esi, eax
and esi, edi
mov eax, esi
mov ecx, 0x1007cdd8
xor eax, ebx
cdq
push edx
push eax
call fcn.10005d27
inc ebx
cmp ebx, 0x6049
jl 0x10040467
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x20], ecx
push 0
pop ebx
cmp ecx, 0x947
jl 0x1004045e
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0xb3
jl 0x10040459
inc edi
cmp edi, 0x3fbb
jl 0x10040454
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], 0x5231
jge 0x100404c5
mov edx, str.niufx_aigddrc_wsnfkjwot_jnbzg_szyrgf_drkeegq
mov ecx, 0x1007cdd8
call fcn.100089dc
jmp 0x10040ebe
mov dword [ebp - 0x14], 0xbef
xor esi, esi
cmp dword [ebp - 0x14], 0xc9e
jle 0x1004057a
xor ebx, ebx
inc esi
mov dword [ebp - 0x2c], ebx
mov edi, ebx
mov dword [ebp - 0x3c], ebx
mov ecx, edi
mov dword [ebp - 0x38], 0x2255
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x20], ecx
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x104]
cdq
push edx
push eax
call fcn.10001a84
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040530
mov eax, dword [eax]
push eax
call fcn.10048acd
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x104]
call fcn.10006880
mov ecx, dword [ebp - 0x20]
dec ecx
dec dword [ebp - 0x38]
mov dword [ebp - 0x20], ecx
jne 0x10040514
mov edi, dword [ebp - 0x3c]
inc edi
mov dword [ebp - 0x3c], edi
cmp edi, 0xee0
jl 0x10040505
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x3609
jl 0x10040500
push 0x2702
call dword [sym.imp.GDI32.dll_EndDoc]
jmp 0x1004057d
inc esi
xor ebx, ebx
push ebx
push esi
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
cmp dword [ebp - 0x14], 0xa76
jge 0x10040ebe
push str.vhwwn_whltppft_bnoi_xjacgcr_hngrsp_zvlzhd_wkkozfc_exh_jetg
call fcn.10048acd
pop ecx
jmp 0x10040ebe
test cl, cl
je 0x100405c9
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xfffffff6
jmp 0x100405bf
mov dword [ebp - 0x20], 0x2631
dec dword [ebp - 0x20]
dec dword [eax]
cmp dword [eax], 0xfffffff4
jge 0x100405b3
jmp 0x10040ebe
mov eax, dword [ebp + 0x14]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x14], ebx
jmp 0x100405ea
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd0], 0x5711
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x100405d9
push 3
pop ecx
xor esi, esi
mov dword [ebp - 0x1c], ebx
push 2
inc esi
pop edi
cmp dword [ebp - 0x1c], ecx
jg 0x10040673
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x18], ebx
jmp 0x10040616
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xd0], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x10040609
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jl 0x1004066e
mov dword [ebp - 0x14], ebx
jmp 0x10040637
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10040629
mov dword [ebp - 0x54], ebx
jmp 0x10040664
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], ebx
jl 0x10040661
mov eax, dword [ebp - 0x54]
cmp dword [ebp + eax*4 - 0xd0], ebx
jne 0x10040661
dec dword [ebp - 0x14]
jns 0x10040650
inc dword [ebp - 0x54]
cmp dword [ebp - 0x54], ecx
jle 0x10040641
dec dword [ebp - 0x18]
jns 0x10040624
inc dword [ebp - 0x1c]
jmp 0x100405fc
mov eax, dword [0x108202cc]
test al, 1
jne 0x100406c0
or eax, esi
mov ecx, 0x1571
or dword [0x10821664], 0xffffffff
mov edx, esi
mov dword [0x108202cc], eax
mov dword [0x108202e4], ecx
mov eax, ecx
shr eax, 0x1e
xor eax, ecx
imul ecx, eax, 0x6c078965
add ecx, edx
mov dword [edx*4 + 0x108202e4], ecx
inc edx
cmp edx, 0x270
jl 0x10040697
mov dword [0x108202e0], 0x270
push dword [ebp - 0x6c]
movdqa xmm0, xmmword [0x1006f9b0]
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x60], ebx
push eax
push ebx
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x5c], ebx
movdqu xmmword [ebp - 0xe0], xmm0
mov dword [ebp - 0x58], ebx
call fcn.100092ad
mov dword [ebp - 4], 4
mov dword [ebp - 0x44], 0xfffffffe
mov dword [ebp - 0x44], ebx
jmp 0x10040727
lea eax, [ebp - 0x44]
mov dword [ebp - 0xb0], ebx
push eax
lea eax, [ebp - 0xb0]
push eax
push ecx
lea eax, [ebp - 0x60]
push eax
call fcn.10041cdd
add esp, 0x10
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], 3
jle 0x10040706
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x60], 0
je 0x10040749
push dword [ebp - 0x60]
call fcn.10048c99
pop ecx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x28], 0x25b9b55b
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x2c], 0xd162c5d1
mov dword [ebp - 0x20], 0x4c6f4446
mov dword [ebp - 0x1c], 0xfd090d79
push edi
call fcn.10006036
mov dword [ebp - 4], 5
mov dword [ebp - 0x28], 0x4809
cmp dword [ebp - 0x28], 0x4a18
jle 0x100407e6
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov ebx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0x3ef1
mov esi, eax
mov edi, 0x7c33
mov ecx, esi
mov eax, ebx
sar eax, cl
mov ecx, 0x1007cdd8
cdq
push edx
push eax
call fcn.10005d27
dec esi
dec edi
jne 0x100407a1
mov eax, dword [ebp - 0x20]
dec eax
dec dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
jne 0x1004079a
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x34a3
jl 0x10040790
inc ebx
push edi
mov dword [ebp - 0x20], ebx
cmp ebx, 0x259
pop ebx
jl 0x10040788
xor esi, esi
push 2
inc esi
pop edi
mov dword [ebp - 0x48], 0xfffffffb
mov byte [ebp - 4], 6
cmp dword [ebp - 0x28], 0x44a2
jge 0x1004082d
mov edx, str.cgv_whwu_fvoodgc_lgtjtgb_rfr_wcf_mifytgnng_ser_xewezh_dphylzbf_fhwwyohe_epimws_oiikr
mov ecx, 0x1007cdd8
call fcn.100089dc
jmp 0x1004082d
push ecx
lea edx, [ebp - 0x78]
mov dword [ebp - 4], 5
lea ecx, [ebp - 0xc0]
call fcn.1004187f
pop ecx
push 0xfffffffffffffffa
mov dword [ebp - 0x28], ebx
pop edi
cmp dword [ebp - 0x28], 0xfffffff8
jle 0x10040aa9
mov dword [ebp - 0x14], 0xa2768935
mov dword [ebp - 0x18], edi
mov dword [ebp - 0xac], 0xffffffff
mov dword [ebp - 0x48], 5
mov dword [ebp - 0x14], ebx
jmp 0x10040882
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3c], 0x45d764ce
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10040874
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xfffffffd
jne 0x10040a74
mov dword [ebp - 0x30], 0x77a0
cmp dword [ebp - 0x30], 0x7b54
jle 0x1004092b
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov eax, edi
mov dword [ebp - 0x1c], 0x308a
cdq
idiv ecx
mov edi, edx
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov eax, edi
or eax, ecx
lea ecx, [ebp - 0x11c]
cdq
push edx
push eax
call fcn.10001a84
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100408e1
mov eax, dword [eax]
push eax
call fcn.10048acd
pop ecx
push ebx
push esi
lea ecx, [ebp - 0x11c]
call fcn.10006880
mov ecx, dword [ebp - 0x20]
inc ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 0xabe
jl 0x100408c5
inc edi
dec dword [ebp - 0x1c]
jne 0x100408c0
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x45cc
jl 0x100408b2
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0x227d
jl 0x100408ad
push 0xfffffffffffffffa
pop edi
mov dword [ebp - 0x24], 0x2d564c7b
cmp dword [ebp - 0x30], 0x762b
jge 0x10040946
push str.grbtm_wmlxw_dyow_hycq_wll_swn_naspvjk_gpdcop_timx_vhspn
call fcn.10048acd
pop ecx
mov dword [ebp - 4], 5
xor edx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ebx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x28]
add ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
cmp eax, ecx
mov eax, dword [ebp - 0x24]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x28]
setge cl
mov dword [ebp - 0x30], ecx
xor ecx, ecx
cmp dword [ebp - 0x30], eax
setle cl
cmp ecx, dword [ebp - 0x24]
jge 0x10040995
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
xor edx, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setge dl
mov dword [ebp - 0x20], edx
xor edx, edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0xac]
setg dl
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 0xffffffff
setge al
cmp edi, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1c], ebx
jmp 0x10040a62
sub esp, 0xc
call fcn.10041de1
mov dword [ebp - 0x18], ebx
add esp, 0xc
cmp dword [ebp - 0x18], ebx
jl 0x10040a5f
mov dword [ebp - 0x30], 0x37def5f9
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x3c], ebx
jne 0x10040a0f
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x18], ebx
jne 0x10040a09
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, esi
mov eax, dword [ebp - 0x3c]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setl dl
mov dword [ebp + eax*4 - 0x3c], edx
mov dword [ebp - 0x24], 0xffffffe6
jmp 0x10040a54
push ecx
push ecx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0xa0], 0xaf36eaf0
push eax
lea ecx, [ebp - 0xa0]
call fcn.10041b0e
add esp, 0xc
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 0x19
jle 0x10040a33
dec dword [ebp - 0x18]
jns 0x100409ee
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x13
jl 0x100409db
dec dword [ebp - 0x14]
jmp 0x1004088a
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x48]
cmp eax, esi
mov eax, dword [ebp - 0x28]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setg cl
sub eax, ecx
mov dword [ebp - 0x3c], eax
dec dword [ebp - 0x28]
jmp 0x1004084a
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x78], 0
push 2
pop edi
je 0x10040ac8
push dword [ebp - 0x78]
call fcn.10048c99
pop ecx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
cmp byte [0x10820113], 0
jne 0x10040d6e
push esi
lea ecx, [ebp - 0x9c]
call fcn.10006036
mov dword [ebp - 4], 0xa
mov dword [ebp - 0x14], ebx
jmp 0x10040b00
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x9c]
mov dword [eax + ecx*4], 0xb26bdde0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10040aed
mov eax, dword [ebp - 0x9c]
mov dword [eax], ebx
cmp dword [eax], 0xfffffff6
jl 0x10040c7e
push edi
lea ecx, [ebp - 0x84]
call fcn.10006036
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x34], ebx
jmp 0x10040b3c
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0xbc], 0xfffffff6
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10040b2b
push 0x7c1
push ebx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x84]
push eax
push ecx
push ecx
mov ecx, 0x5ec2
call fcn.1004027a
mov dword [ebp - 0x30], 0x173e
add esp, 0x18
cmp dword [ebp - 0x30], 0x196a
jle 0x10040bab
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov esi, ebx
mov edi, ebx
mov ebx, 0x7b1d
mov eax, edi
mov ecx, 0x1007cdd8
cdq
push edx
push eax
call fcn.10005d27
add edi, esi
dec ebx
jne 0x10040b88
inc esi
cmp esi, 0x769f
jl 0x10040b81
xor esi, esi
push 2
inc esi
pop edi
mov dword [ebp - 0x34], ebx
jmp 0x10040bbe
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x68], 0xfffffff6
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], edi
jl 0x10040bb0
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x30], 0x16ac
jge 0x10040c03
mov edx, str.uctvc_exvzxez_obtsq_npvpjelhx
mov ecx, 0x1007cdd8
call fcn.100089dc
jmp 0x10040c03
mov dword [ebp - 4], 0xb
mov ecx, dword [ebp - 0x84]
mov dword [ecx + 4], ebx
mov eax, dword [ecx + 4]
inc dword [ecx + 4]
mov dword [ebp + eax*4 - 0xbc], 8
cmp dword [ecx + 4], edi
jl 0x10040c13
mov dword [ebp - 0x64], 0xfffffffc
jmp 0x10040c4f
lea eax, [ebp - 0x3e]
mov byte [ebp - 0x3e], bl
push eax
push 0x7715
xor dl, dl
mov ecx, 0x5507
call fcn.10041bcb
dec dword [ebp - 0x64]
pop ecx
pop ecx
cmp dword [ebp - 0x64], 0xffffffee
jge 0x10040c32
mov byte [ebp - 4], 0xa
push dword [ebp - 0x84]
call fcn.10048c99
mov eax, dword [ebp - 0x9c]
pop ecx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
dec dword [eax]
mov dword [ebp - 0x7c], ebx
jmp 0x10040b0d
or dword [ebp - 4], 0xffffffff
push eax
call fcn.10048c99
sub esp, 0xc
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], ebx
call fcn.100419ca
add esp, 0x10
lea ecx, [ebp - 0x90]
push 4
call fcn.10006036
mov dword [ebp - 4], 0xe
mov dword [ebp - 0x38], ebx
jmp 0x10040ccf
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xec], 8
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 3
jl 0x10040cbe
lea eax, [ebp - 0x38]
push eax
push ecx
lea ecx, [ebp - 0x90]
call fcn.10041ab3
mov eax, dword [ebp - 0x90]
mov ebx, eax
pop ecx
pop ecx
mov dword [eax + 0xc], edi
push 0x6d1b
push ecx
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb4], 0xffffffff
push eax
push 0x601a
xor cl, cl
call fcn.10041972
add esp, 0xc
call fcn.10042176
dec dword [ebx + 0xc]
pop ecx
jns 0x10040cf2
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0x90]
push ecx
mov eax, dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
mov dword [ebx + 0xc], eax
call fcn.10048c99
mov dword [esp], 0x2db2
xor ebx, ebx
push 0x4a87
push 0x10820113
xor dl, dl
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
call fcn.10040257
add esp, 0xc
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x10040d8b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xa8], 0xe2db58e4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x10040d7a
mov dword [ebp - 0x18], ebx
jmp 0x10040da2
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xa8], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x10040d95
mov dword [ebp - 0x18], ebx
jmp 0x10040e1e
mov dword [ebp - 0x14], 0x90be4438
mov dword [ebp - 0x14], esi
cmp dword [ebp - 0x14], ebx
jl 0x10040e0a
mov dword [ebp - 0x1c], 0x3a0b8ee4
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], ebx
jl 0x10040dfb
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0xa8], ebx
jne 0x10040dfb
push 0x6ebc
push 0x25a8
push esi
push esi
mov byte [ebp - 0x3d], bl
lea edx, [ebp - 0x3d]
push ebx
mov ecx, 0x77ec
call fcn.10041c57
add esp, 0x14
dec dword [ebp - 0x1c]
jns 0x10040dca
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0xa8]
dec dword [ebp - 0x14]
jns 0x10040dbb
push ecx
mov edx, 0x450d
mov ecx, 0xed2
call fcn.100423d3
inc dword [ebp - 0x18]
pop ecx
cmp dword [ebp - 0x18], esi
jle 0x10040dac
mov eax, dword [0x108202e0]
cmp eax, 0x270
jne 0x10040e6f
mov edx, 0x108202e8
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, ecx
xor eax, dword [edx + 0x630]
mov dword [edx + 0x9bc], eax
add edx, 4
cmp edx, 0x10820ca8
jl 0x10040e34
jmp 0x10040e7b
cmp eax, 0x4e0
jb 0x10040e80
call fcn.100426fc
mov eax, dword [0x108202e0]
mov edx, dword [eax*4 + 0x108202e4]
inc eax
mov dword [0x108202e0], eax
mov eax, edx
shr eax, 0xb
and eax, dword [0x10821664]
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 - 0x6c]
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