Function at 0x418a80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov dword [esp + 0x10], 0x63ae619c
mov dword [esp + 0x14], 0x6785658b
mov dword [esp + 0x18], 0x6b866989
mov dword [esp + 0x1c], 0x6fab6d4c
mov dword [esp + 0x20], 0x13861188
mov dword [esp + 0x24], 0x17f815f1
mov dword [esp + 0x28], 0x1bf3198b
mov dword [esp + 0x2c], 0x1ff01df3
mov dword [esp + 0x30], 0x3f10120
mov dword [esp + 0x34], 0x79205e1
mov dword [esp + 0x38], 0xbe3099c
mov dword [esp + 0x3c], 0xfe90de2
mov dword [esp + 0x40], 0x33ce31a3
lea eax, [esp + 0x44]
mov dword [esp + 0x54], eax
mov word [esp + 0x44], 0x3534
mov dword [esp + 0x46], 0
mov byte [esp + 0x4a], 0
xor edx, edx
mov ecx, 0xd0
mov eax, 0xff3f00cf
nop
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov edi, eax
shr edi, 1
and edi, 1
mov eax, edx
shr eax, 1
and eax, 1
lea esi, [edx + 0xc0ff30]
mov ecx, esi
or esi, 2
imul esi, eax
movzx eax, byte [esp + edx + 0x10]
and ecx, 0x7d
imul ecx, edi
mov edi, eax
mov ebx, eax
not ebx
add esi, esi
lea eax, [esi + ecx*2]
mov ecx, dword [esp + 0xc]
add eax, ecx
and eax, edi
mov esi, edi
lea edi, [ecx - 1]
or ebx, edi
add ebx, esi
neg ebx
add ecx, ebx
add ecx, 0xff3efffe
or ecx, eax
lea eax, [ecx + ecx]
not eax
add eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
add al, 0xb0
mov byte [esp + edx + 0x10], al
mov eax, dword [esp + 8]
inc edx
dec eax
mov ecx, edi
cmp edi, 0x95
jne 0x418b20
lea edi, [esp + 0x74]
lea eax, [esp + 0x10]
mov ecx, 0xd
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xa8]
mov ecx, 1
mov eax, dword [esp + 0x54]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418bd0
sar eax, 1
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418bf0
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x418c0e
mov eax, 0xffffffff
jmp 0x418c15
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00408a60
add esp, 4
movzx ecx, word [esi]
mov ebx, eax
test cx, cx
je 0x418c41
add esi, 2
mov ebx, eax
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418c30
mov dword [esp + 0xc], eax
mov word [ebx], 0
movzx ecx, word [esp + 0x74]
test cx, cx
je 0x418c71
lea edx, [esp + 0x76]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418c60
mov word [ebx], 0
movzx ecx, word [edi]
test cx, cx
je 0x418ca1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418c90
mov word [ebx], 0
mov dword [esp + 0x10], 0x135f1147
mov dword [esp + 0x14], 0x1f801d8a
mov dword [esp + 0x18], 0x1b8e1971
mov dword [esp + 0x1c], 0x76f0587
mov dword [esp + 0x20], 0x3960197
mov dword [esp + 0x24], 0xf5d0d9f
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0x90e
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov ecx, 0xc0fff0fc
mov edx, 0x3f000f03
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0xd4
mov esi, edx
and esi, 0x2b
or esi, edi
mov ebx, ecx
and ebx, 0x599d0f72
mov edi, edx
and edi, 0xa662f08d
or edi, ebx
movzx ebx, byte [esp + edx - 0x3f000ef3]
xor edi, 0xa662f08d
xor esi, edi
xor esi, 0xd4
and esi, ebx
xor esi, edi
not esi
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x58]
mov edi, esi
xor edi, 0xf7
and esi, 0x77
lea ebx, [edi + esi*2]
add bl, 0xf4
mov byte [esp + edx - 0x3f000ef3], bl
dec ecx
inc edx
cmp ecx, 0xc0fff0d6
jne 0x418d10
lea edi, [esp + 0x58]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x70]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x418db0
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x418dd0
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x418df0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x418e14
mov eax, 0xffffffff
jmp 0x418e1c
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00408a60
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 8], eax
test cx, cx
je 0x418e51
add edi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x418e40
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x418e81
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x418e70
mov word [eax], 0
movzx ecx, word [esp + 0x58]
test cx, cx
je 0x418eb1
lea edx, [esp + 0x5a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x418ea0
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x418ee1
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x418ed0
mov word [eax], 0
mov dword [esp + 0x10], 0xa3a2ad92
mov dword [esp + 0x14], 0
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0x85beacf4
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x10], al
movzx eax, byte [esp + 0x11]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0a4
and edx, 0x4180c5b
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x11], al
movzx eax, byte [esp + 0x12]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0ab
and edx, 0x4180c54
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x12], al
movzx eax, byte [esp + 0x13]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0aa
and edx, 0x4180c55
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x13], al
movzx eax, byte [esp + 0x14]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0a9
and edx, 0x4180c56
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x14], al
movzx eax, byte [esp + 0x15]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0a8
and edx, 0x4180c57
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x15], al
movzx eax, byte [esp + 0x16]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0af
and edx, 0x4180c50
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x16], al
movzx eax, byte [esp + 0x17]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0ae
and edx, 0x4180c51
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x17], al
movzx eax, byte [esp + 0x18]
mov edx, eax
and edx, 0xfffffffd
mov esi, eax
and esi, 2
mov ecx, eax
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edx
add ecx, esi
not ecx
add ecx, eax
and ecx, 0x4c180cc3
and eax, 0x3c
lea edx, [ecx + eax]
not eax
sub eax, ecx
and eax, 0xc9a6a0ad
and edx, 0x4180c52
or edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x36
mov byte [esp + 0x18], al
push 0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x20]
push eax
mov esi, dword [esp + 0x20]
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.0041bf90
add esp, 0x20
mov ebx, eax
jmp dword [0x446e30]