Function at 0x46df40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x4842d8
push 0x408890
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push esi
push edi
mov eax, dword [0x486534]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xor esi, esi
mov dword [ebp - 0x1c], esi
xor eax, eax
lea ebx, [ebx]
mov ecx, eax
not ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0x3e
jl 0x46df80
cmp esi, 0xffff0001
jge 0x46df9f
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46dfc9
mov esi, 0xb
mov dword [ebp - 0x1c], esi
xor eax, eax
jmp 0x46dfd0
mov ecx, eax
not ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x46dfd0
cmp esi, 0xffff0001
jge 0x46dfef
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e019
mov esi, 0xb
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x46e020
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e02c
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e053
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0x3d
jl 0x46e020
xor ecx, ecx
lea ecx, [ecx]
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e06c
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e093
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0x3b
jl 0x46e060
mov dword [ebp - 4], 0
xor ecx, ecx
mov dword [ebp - 0x20], ecx
cmp ecx, 3
jge 0x46e0f0
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46e0bf
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46e0e8
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e0eb
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e0a4
mov dword [ebp - 4], 0xfffffffe
call fcn.0046e1a0
xor eax, eax
mov edi, edi
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e100
test esi, esi
jge 0x46e120
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46e145
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e153
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e17a
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 0xa
jl 0x46e147
xor edi, edi
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea ecx, [edx + edx*2]
mov edx, edi
sub edx, ecx
cmp edx, 1
jne 0x46e1aa
and esi, edi
jmp 0x46e1c0
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
or esi, edi
mov dword [ebp - 0x1c], esi
add edi, 1
cmp edi, 5
jl 0x46e184
xor eax, eax
lea ecx, [ecx]
mov ecx, eax
imul esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 8
jl 0x46e1d0
test esi, esi
jle 0x46e1ea
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, esi
sub eax, edx
jne 0x46e209
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
xor edi, edi
mov edi, edi
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea ecx, [edx + edx*2]
mov edx, edi
sub edx, ecx
cmp edx, 1
jne 0x46e229
and esi, edi
jmp 0x46e23f
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
or esi, edi
mov dword [ebp - 0x1c], esi
add edi, 1
cmp edi, 0x10
jl 0x46e210
xor eax, eax
lea esp, [esp]
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 0xd
jl 0x46e250
test esi, esi
jge 0x46e270
mov eax, esi
neg eax
add eax, eax
add eax, eax
sub eax, esi
mov esi, eax
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xd
mov edx, esi
sub edx, ecx
jne 0x46e295
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 1
xor ecx, ecx
mov dword [ebp - 0x24], ecx
cmp ecx, 4
jge 0x46e2ea
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46e2b9
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46e2e2
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e2e5
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e29e
mov dword [ebp - 4], 0xfffffffe
call fcn.0046e348
mov dword [ebp - 4], 2
mov edi, 7
mov dword [ebp - 0x28], edi
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
test ecx, ecx
jge 0x46e38a
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46e336
sub edi, 1
mov dword [ebp - 0x28], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e307
mov dword [ebp - 4], 0xfffffffe
xor edi, edi
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea edx, [edx + edx*2]
mov eax, edi
sub eax, edx
cmp eax, 1
jne 0x46e3ac
and esi, edi
jmp 0x46e3c2
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
or esi, edi
mov dword [ebp - 0x1c], esi
add edi, 1
cmp edi, 8
jl 0x46e393
test esi, esi
jle 0x46e3d7
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov edx, esi
sub edx, ecx
jne 0x46e3f6
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
mov dword [ebp - 4], 3
mov edi, 7
mov dword [ebp - 0x30], edi
xor ecx, ecx
mov dword [ebp - 0x34], ecx
cmp ecx, 8
jge 0x46e481
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46e43a
sub edi, 1
mov dword [ebp - 0x30], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e40a
mov dword [ebp - 4], 0xfffffffe
xor ecx, ecx
lea ebx, [ebx]
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e49c
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e4c3
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 6
jl 0x46e490
xor eax, eax
lea ecx, [ecx]
mov ecx, eax
not ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e4d0
cmp esi, 0xffff0001
jge 0x46e4ef
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e519
mov esi, 0xb
mov dword [ebp - 0x1c], esi
xor ecx, ecx
jmp 0x46e520
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e52c
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e553
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x46e520
mov dword [ebp - 4], 4
xor ecx, ecx
mov dword [ebp - 0x38], ecx
cmp ecx, 7
jge 0x46e5b0
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46e57f
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46e5a8
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e5ab
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e564
mov dword [ebp - 4], 0xfffffffe
call fcn.0046e65d
xor eax, eax
mov edi, edi
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 8
jl 0x46e5c0
test esi, esi
jge 0x46e5e0
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46e605
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 5
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, 4
jge 0x46e667
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46e629
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46e652
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e655
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e60e
mov dword [ebp - 4], 0xfffffffe
call fcn.0046e80f
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46e681
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e6a8
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 6
jl 0x46e675
xor eax, eax
mov ecx, eax
imul esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e6b2
test esi, esi
jle 0x46e6cc
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, esi
sub eax, edx
jne 0x46e6eb
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
xor eax, eax
mov ecx, eax
not ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e6f0
cmp esi, 0xffff0001
jge 0x46e70f
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e739
mov esi, 0xb
mov dword [ebp - 0x1c], esi
xor eax, eax
jmp 0x46e740
mov ecx, eax
imul esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e740
test esi, esi
jle 0x46e75a
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, esi
sub eax, edx
jne 0x46e779
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
xor eax, eax
mov edi, edi
mov ecx, eax
imul esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x46e780
test esi, esi
jle 0x46e79a
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, esi
sub eax, edx
jne 0x46e7b9
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
mov dword [ebp - 4], 6
mov edi, 7
mov dword [ebp - 0x40], edi
xor ecx, ecx
mov dword [ebp - 0x44], ecx
cmp ecx, 3
jge 0x46e851
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46e7fd
sub edi, 1
mov dword [ebp - 0x40], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e7cd
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
lea ebx, [ebx]
mov edx, eax
not edx
xor esi, edx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46e860
cmp esi, 0xffff0001
jge 0x46e87f
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x46e8a9
mov esi, 0xb
mov dword [ebp - 0x1c], esi
mov edi, 7
mov dword [ebp - 4], edi
mov dword [ebp - 0x48], edi
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
cmp ecx, 3
jge 0x46e92d
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46e8e6
sub edi, 1
mov dword [ebp - 0x48], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e8b6
mov dword [ebp - 4], 0xfffffffe
mov dword [ebp - 4], 8
xor ecx, ecx
mov dword [ebp - 0x50], ecx
test ecx, ecx
jge 0x46e988
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46e957
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46e980
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46e983
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46e93d
mov dword [ebp - 4], 0xfffffffe
call fcn.0046eb46
xor esi, esi
mov dword [ebp - 0x1c], esi
jge 0x46e9aa
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46e9cf
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
mov dword [ebp - 0x1c], esi
xor eax, eax
mov edx, eax
not edx
xor esi, edx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x46e9e8
cmp esi, 0xffff0001
jge 0x46ea07
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x46ea31
mov esi, 0xb
mov dword [ebp - 0x1c], esi
not esi
mov dword [ebp - 0x1c], esi
cmp esi, 0xffff0001
jge 0x46ea44
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov edx, esi
sub edx, ecx
jne 0x46ea6e
mov esi, 0xb
mov dword [ebp - 0x1c], esi
xor eax, eax
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46ea70
test esi, esi
jge 0x46ea90
mov eax, esi
neg eax
add eax, eax
add eax, eax
sub eax, esi
mov esi, eax
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xd
mov edx, esi
sub edx, ecx
jne 0x46eab5
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
mov ecx, eax
imul esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 2
jl 0x46eab7
test esi, esi
jle 0x46ead1
lea esi, [esi + esi*4]
mov dword [ebp - 0x1c], esi
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
mov eax, esi
sub eax, edx
jne 0x46eaf0
mov esi, 0x11
mov dword [ebp - 0x1c], esi
nop
nop
nop
mov dword [ebp - 4], 9
mov edi, 7
mov dword [ebp - 0x54], edi
xor ecx, ecx
mov dword [ebp - 0x58], ecx
cmp ecx, 4
jge 0x46eb88
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46eb34
sub edi, 1
mov dword [ebp - 0x54], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46eb04
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46eb91
test esi, esi
jge 0x46ebb1
mov edx, esi
neg edx
add edx, edx
add edx, edx
sub edx, esi
mov esi, edx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46ebd6
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0xa
mov edi, 7
mov dword [ebp - 0x5c], edi
xor ecx, ecx
mov dword [ebp - 0x60], ecx
test ecx, ecx
jge 0x46ec5d
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46ec16
sub edi, 1
mov dword [ebp - 0x5c], edi
mov eax, esi
cdq
idiv edi
mov esi, eax
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46ebe7
mov dword [ebp - 4], 0xfffffffe
xor ecx, ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
jge 0x46ec72
neg esi
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46ec99
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
cmp ecx, 2
jl 0x46ec66
xor edi, edi
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea ecx, [edx + edx*2]
mov edx, edi
sub edx, ecx
cmp edx, 1
jne 0x46ecbc
and esi, edi
jmp 0x46ecd2
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
or esi, edi
mov dword [ebp - 0x1c], esi
add edi, 1
cmp edi, 3
jl 0x46eca3
test esi, esi
jge 0x46ecf0
mov eax, esi
neg eax
add eax, eax
add eax, eax
sub eax, esi
mov esi, eax
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, ecx, 0xd
mov edx, esi
sub edx, ecx
jne 0x46ed15
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
mov ecx, eax
not ecx
xor esi, ecx
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 4
jl 0x46ed17
cmp esi, 0xffff0001
jge 0x46ed36
lea esi, [esi + esi*2]
mov dword [ebp - 0x1c], esi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46ed60
mov esi, 0xb
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0xb
xor ecx, ecx
mov dword [ebp - 0x64], ecx
cmp ecx, 3
jge 0x46edb5
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46ed84
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46edad
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46edb0
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46ed69
mov dword [ebp - 4], 0xfffffffe
call fcn.0046eeac
xor eax, eax
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x46edc3
test esi, esi
jge 0x46ede3
mov ecx, esi
neg ecx
add ecx, ecx
add ecx, ecx
sub ecx, esi
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46ee08
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
xor eax, eax
lea ebx, [ebx]
and esi, eax
mov dword [ebp - 0x1c], esi
add eax, 1
cmp eax, 3
jl 0x46ee10
test esi, esi
jge 0x46ee30
mov edx, esi
neg edx
add edx, edx
add edx, edx
sub edx, esi
mov esi, edx
mov dword [ebp - 0x1c], esi
mov eax, 0x4ec4ec4f
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xd
mov ecx, esi
sub ecx, eax
jne 0x46ee55
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0xc
xor ecx, ecx
mov dword [ebp - 0x68], ecx
test ecx, ecx
jge 0x46eeb6
mov eax, esi
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46ee78
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46eea1
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46eea4
xor esi, esi
mov dword [ebp - 0x1c], esi
add ecx, 1
jmp 0x46ee5e
mov dword [ebp - 4], 0xfffffffe
call fcn.0046ef45
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
mov dword [ebp - 0x1c], esi
mov eax, 1
mov ebx, 2
mov ecx, 3
mov edx, 4
mov ecx, esi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 0xd
mov edi, 7
mov dword [ebp - 0x6c], edi
xor esi, esi
mov dword [ebp - 0x70], esi
cmp esi, 1
jge 0x46ef87
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, esi
sub eax, edx
jne 0x46ef33
sub edi, 1
mov dword [ebp - 0x6c], edi
mov eax, ecx
cdq
idiv edi
mov ecx, eax
mov dword [ebp - 0x1c], ecx
add esi, 1
jmp 0x46ef03
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov edx, eax
not edx
xor ecx, edx
mov dword [ebp - 0x1c], ecx
add eax, 1
cmp eax, 3
jl 0x46ef90
cmp ecx, 0xffff0001
jge 0x46efaf
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x1c], ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46efd9
mov ecx, 0xb
mov dword [ebp - 0x1c], ecx
not ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0xffff0001
jge 0x46efec
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x1c], ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46f016
mov ecx, 0xb
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 4], 0xe
xor esi, esi
mov dword [ebp - 0x74], esi
test esi, esi
jge 0x46f06a
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
and eax, 0x80000001
jns 0x46f039
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x46f062
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46f065
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
add esi, 1
jmp 0x46f01f
mov dword [ebp - 4], 0xfffffffe
call fcn.0046f115
xor eax, eax
mov edx, eax
not edx
xor ecx, edx
mov dword [ebp - 0x1c], ecx
add eax, 1
cmp eax, 2
jl 0x46f078
cmp ecx, 0xffff0001
jge 0x46f097
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0x1c], ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46f0c1
mov ecx, 0xb
mov dword [ebp - 0x1c], ecx
xor esi, esi
xor ecx, esi
mov dword [ebp - 0x1c], ecx
jge 0x46f0cf
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax*8]
sub edx, eax
mov eax, ecx
sub eax, edx
jne 0x46f0f6
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
add esi, 1
cmp esi, 3
jl 0x46f0c3
mov eax, ecx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret