Function at 0x417860
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], 0xbbf4b9ea
mov dword [esp + 0x14], 0xbfd9bdcb
mov dword [esp + 0x18], 0xc3acc1dd
mov dword [esp + 0x1c], 0xc783c5e2
mov dword [esp + 0x20], 0xcbbcc9be
mov dword [esp + 0x24], 0xcfa2cdad
mov dword [esp + 0x28], 0xd3bbd1bb
mov dword [esp + 0x2c], 0xd7bad5a3
mov dword [esp + 0x30], 0xdb8dd9f6
mov dword [esp + 0x34], 0xdfa8ddbd
mov dword [esp + 0x38], 0xe38be1aa
mov dword [esp + 0x3c], 0xe78de58c
mov dword [esp + 0x40], 0xebb4e993
lea eax, [esp + 0x44]
mov word [esp + 0x44], 0xedea
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x48
ja 0x417985
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x84]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0x26e071b7]
and esi, edx
add ecx, edx
add ecx, 0x26e071b7
add esi, esi
sub ecx, esi
mov edx, ecx
xor edx, 0xfe
and ecx, 0x7e
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0x84]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, 0x49
jb 0x417930
mov esi, dword [ebp + 0x10]
lea edi, [esp + 0x84]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x4179c0
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
sar eax, 1
mov esi, dword [esi + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx], 0
lea ecx, [ecx + 2]
jne 0x4179f0
lea edx, [esi + ecx]
add edx, 0xfffffffe
add ecx, esi
mov ebx, 1
sub ebx, ecx
and ebx, esi
mov ecx, esi
not ecx
and ecx, edx
sub ecx, ebx
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x417a26
mov eax, 0xffffffff
jmp 0x417a2d
add eax, ecx
add eax, eax
add eax, 0x36
mov ebx, dword [ebp + 0xc]
push eax
call fcn.00436b20
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x417a61
add edi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x417a50
mov word [eax], 0
movzx ecx, word [esp + 0x84]
test cx, cx
je 0x417a91
lea edx, [esp + 0x86]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417a80
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x417ac1
add esi, 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 [esi]
add esi, 2
test cx, cx
jne 0x417ab0
mov word [eax], 0
mov dword [esp + 0x10], 0xc30fc537
mov dword [esp + 0x14], 0xcf7cc17a
mov dword [esp + 0x18], 0xcb7ecd65
mov dword [esp + 0x1c], 0xd77fc977
mov dword [esp + 0x20], 0xd366d567
mov dword [esp + 0x24], 0xdf21d16f
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0xddde
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x39], 0
mov dword [esp + 0x68], 0
mov ecx, dword [esp + 0x68]
cmp ecx, 0x2c
ja 0x417b84
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x68]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0x965efaa1
add ecx, 0x965efaa1
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
add cl, 0x99
mov edx, dword [esp + 0x68]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
cmp ecx, 0x2d
jb 0x417b40
lea edi, [esp + 0x68]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x80]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx]
xor eax, eax
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x417bb0
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 8], eax
mov esi, dword [ebx + 8]
xor ecx, ecx
nop
nop
nop
nop
cmp word [esi + ecx], 0
lea ecx, [ecx + 2]
jne 0x417be0
lea edx, [esi + ecx]
add edx, 0xfffffffe
add ecx, esi
mov ebx, 1
sub ebx, ecx
and ebx, esi
mov ecx, esi
not ecx
and ecx, edx
sub ecx, ebx
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax]
xor edx, edx
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx], 0
lea edx, [edx + 2]
jne 0x417c10
lea eax, [ebx + edx]
add eax, 0xfffffffe
mov dword [esp + 0x64], eax
add edx, ebx
mov eax, 1
sub eax, edx
mov edx, ebx
not edx
and edx, dword [esp + 0x64]
and eax, ebx
sub edx, eax
mov eax, dword [esp + 8]
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x417c56
mov eax, 0xffffffff
jmp 0x417c5e
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00436b20
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 8], eax
test cx, cx
je 0x417c91
add edi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x417c80
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x417cc1
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 0x417cb0
mov word [eax], 0
movzx ecx, word [esp + 0x68]
test cx, cx
je 0x417cf3
lea edx, [esp + 0x6a]
mov esi, dword [esp + 0xc]
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 0x417ce0
jmp 0x417cf7
mov esi, dword [esp + 0xc]
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x417d21
add ebx, 2
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 0x417d10
mov word [eax], 0
mov byte [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xb3b2b1ca
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x14
ja 0x417da3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edx, byte [esp + eax + 0x10]
lea eax, [ecx + edx]
add eax, 0x18
add ecx, 0x18
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x58
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x15
jb 0x417d70
push 0
push 0xc00000
lea eax, [esp + 0x18]
push eax
push esi
push dword [esp + 0x18]
push dword [ebp + 8]
call fcn.0041b180
add esp, 0x18
mov ebx, eax
mov eax, dword [0x443bd0]
mov ecx, 0x3aee719d
xor ecx, dword [0x443bd8]
add eax, ecx
inc eax
jmp eax