Function at 0x416fc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x180
mov dword [esp + 8], 0x9ff099ab
mov dword [esp + 0xc], 0xa3d19deb
mov dword [esp + 0x10], 0xa7a6a1d2
mov word [esp + 0x14], 0
xor eax, eax
movzx ecx, byte [esp + eax + 8]
mov esi, eax
and esi, 6
xor esi, 0x7d404b66
mov edx, eax
and edx, 9
sub edx, esi
mov esi, ecx
and esi, 0x41
xor esi, 0x8d35c641
mov edi, ecx
xor edi, 0x8d35c641
or ecx, 0xbe
and ecx, edi
or ecx, esi
xor ecx, edx
lea esi, [ecx + ecx]
and esi, 0x400e1fa
xor esi, 0x82
mov edx, ecx
xor edx, 0xbc
add edx, esi
and ecx, 1
xor edx, 1
or edx, ecx
add edx, ecx
mov byte [esp + eax + 8], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xe
jb 0x416ff0
mov dword [esp + 0x38], 0x99669b74
mov dword [esp + 0x3c], 0xa556a764
mov dword [esp + 0x40], 0xa193a362
mov dword [esp + 0x44], 0xad5aaf91
mov dword [esp + 0x48], 0xa947ab5d
mov dword [esp + 0x4c], 0xb542b747
mov dword [esp + 0x50], 0xb143b35c
mov dword [esp + 0x54], 0xbd42bf4d
mov dword [esp + 0x58], 0xb9babb7a
mov word [esp + 0x5c], 0
mov byte [esp + 0x5e], 0
lea eax, [esp + 0x38]
mov ecx, 0x15d0bd24
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
mov edi, ecx
and edi, 0x159024b8
lea edx, [ecx - 0x60000000]
and edx, 0xa0409947
or edx, edi
mov edi, esi
xor edi, 0xb8
mov ebx, edx
xor ebx, 0x47
or ebx, edi
xor esi, 0x47
xor edx, 0xb8
or edx, esi
and edx, ebx
add dl, 0xb9
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x15d0bcfd
jne 0x4170c0
movzx ecx, word [esp + 0x38]
lea eax, [esp + 0x146]
test cx, cx
je 0x417133
lea edx, [esp + 0x3a]
mov esi, dword [ebp + 0x10]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417120
jmp 0x417136
mov esi, dword [ebp + 0x10]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
mov edi, dword [ebp + 0xc]
je 0x417161
lea edx, [esi + 2]
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 0x417150
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x417191
lea edx, [esp + 0xa]
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 0x417180
mov word [eax], 0
mov esi, dword [edi]
mov dword [esp + 0x38], 0x6764640a
mov byte [esp + 0x3c], 4
mov dword [esp + 0x3d], 0
mov dword [esp + 0x40], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 0x38], al
inc eax
cmp eax, 0xc
jne 0x4171c0
movzx eax, byte [esp + 0x38]
test al, al
je 0x4171eb
lea ecx, [esp + 0x39]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4171e0
mov byte [esi], 0
lea eax, [esp + 0x13c]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x146]
push eax
push ecx
push edx
call fcn.0040b8d0
add esp, 0xc
movzx eax, al
mov eax, dword [eax*4 + 0x441bf0]
mov ecx, 0x27bd8d00
xor ecx, dword [0x441bf8]
add eax, ecx
inc eax
jmp eax
lea edi, [eax + 0x58]
xor ebp, ebp
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movzx ecx, byte [esp + 0x5c]
mov byte [eax + 0x58], cl
mov eax, dword [esp]
mov dword [esp + 4], 0x414647ff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ebp
and edi, 0x1e
mov edx, ecx
xor edx, 0x70
sub edx, edi
inc dl
xor dl, byte [esi]
add dl, 0xcb
mov byte [esi], dl
inc esi
dec ecx
add ebp, 0xfffffffe
cmp ecx, 0xfffffffc
jne 0x43a730
add eax, dword [esp + 4]
mov ecx, ebx
shr ecx, 2
lea edx, [esp + 0x94]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, ebx
and ecx, 0xfffffffc
add eax, ecx
lea edx, [esp + ecx]
add edx, 0x94
mov ecx, ebx
xor ecx, 0xfffffffc
mov esi, ebx
or esi, 3
and esi, ecx
mov ecx, esi
shr ecx, 1
mov ebp, edx
mov edi, eax
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x43a7a1
and esi, 0xfffffffe
movzx ecx, byte [edx + esi]
mov byte [eax + esi], cl
mov eax, dword [esp]
mov dword [esp + 4], 0xf0e09e1
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
mov ecx, 0x43ba78c2
mov edx, 0x3d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x43ba78be]
mov edi, esi
not edi
or edi, edx
or esi, ecx
and esi, edi
mov edi, esi
and edi, 0x35
xor esi, 0x35
lea ebx, [esi + edi*2]
inc bl
mov byte [esp + ecx - 0x43ba78be], bl
inc ecx
dec edx
cmp ecx, 0x43ba78c9
jne 0x43a7d0
mov ecx, dword [esp + 4]
add ecx, eax
push dword [esp + 0x2b0]
push ecx
call eax
mov esi, eax
mov edi, edx
mov dword [esp + 0x68], 0
mov dword [esp + 4], 0x40474645
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 4]
mov ebx, eax
and ebx, 2
mov ebp, ecx
xor ebp, 0x16701f91
add ebp, ebx
xor ebp, edx
mov edx, 1
sub edx, ebp
mov ebx, 0xd5
sub ebx, ebp
and ebp, 1
and edx, 1
and ebx, 0xfe
or ebx, edx
xor ebx, 0xfe
lea edx, [ebx + ebp*2]
mov byte [esp + ecx + 4], dl
inc ecx
add eax, 2
cmp ecx, 7
jne 0x43a840
mov eax, dword [0x448588]
test eax, eax
je 0x43a8e9
mov ecx, dword [esp + 4]
xor edx, edx
mov ebx, dword [0x44858c]
nop
nop
nop
cmp dword [ebx + edx*8], 0x16194952
je 0x43a8c1
mov ebp, edx
and ebp, 1
xor edx, 1
lea edx, [edx + ebp*2]
cmp edx, eax
jb 0x43a8a0
jmp 0x43a8e9
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x43a8e9
lea ecx, [esp + 0x68]
mov edx, esp
push 0x8000
push ecx
push edx
push 0xffffffffffffffff
push 4
push eax
push dword [0x448590]
call fcn.00437d80
add esp, 0x1c
mov eax, esi
mov edx, edi
add esp, 0x294
pop esi
pop edi
pop ebx
pop ebp
ret 0x10