Function at 0x41a4d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov ebx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a4f0
mov ecx, dword [esp + 0x78]
mov ebp, dword [ecx + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41a510
mov ecx, eax
sar ecx, 1
sar edx, 1
mov dword [esp + 0x4c], edx
and eax, 0x36
mov dword [esp + 0x48], ecx
xor ecx, 0x1b
add ecx, eax
mov eax, edx
and eax, ecx
xor ecx, edx
lea eax, [ecx + eax*2]
test eax, eax
jns 0x41a547
mov eax, 0xffffffff
jmp 0x41a549
add eax, eax
push eax
call fcn.004082f0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xa], 0x26d924cf
mov dword [esp + 0xe], 0xda3ad8b8
mov dword [esp + 0x12], 0xde41dc3a
mov dword [esp + 0x16], 0xd214d0ff
mov dword [esp + 0x1a], 0xd641d45b
mov dword [esp + 0x1e], 0xca57c832
mov dword [esp + 0x22], 0xce54cc58
mov dword [esp + 0x26], 0xc25fc050
mov dword [esp + 0x2a], 0xc636c4e3
mov dword [esp + 0x2e], 0xfa6df822
mov dword [esp + 0x32], 0xfe64fc6f
mov dword [esp + 0x36], 0xf216f061
mov dword [esp + 0x3a], 0xf619f460
mov word [esp + 0x3e], 0xe8f7
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0xa]
lea esi, [eax + 0xfb]
mov ecx, 4
sub ecx, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
add cl, 0x28
mov byte [esp + eax + 0xa], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 0x38
or eax, 0xe0a33878
add eax, edx
or eax, 1
add eax, ecx
mov ecx, eax
and ecx, 0x187
add ecx, ecx
xor eax, 0xe0a33878
sub ecx, eax
mov eax, ecx
cmp ecx, 0x36
jb 0x41a5d0
movzx ecx, word [ebx]
mov edx, dword [esp + 4]
mov eax, edx
test cx, cx
je 0x41a641
add ebx, 2
mov eax, edx
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41a630
mov word [eax], 0
movzx ecx, word [esp + 0xa]
test cx, cx
je 0x41a671
lea edx, [esp + 0xc]
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 0x41a660
mov word [eax], 0
movzx ecx, word [ebp]
test cx, cx
je 0x41a6a2
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41a690
mov word [eax], 0
mov esi, dword [edi]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41a6b0
mov ecx, dword [esp + 0x74]
mov ebx, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41a6d0
mov edx, dword [esp + 0x78]
mov ebp, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41a6f0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41a714
mov eax, 0xffffffff
jmp 0x41a71d
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004082f0
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 0x40], eax
mov edi, eax
test cx, cx
je 0x41a751
add esi, 2
mov edi, dword [esp + 0x40]
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41a740
mov word [edi], 0x2f
mov dword [esp + 0xa], 0x8f236ca
mov dword [esp + 0xe], 0xcbf0a81
mov dword [esp + 0x12], 0xb10ea8
mov dword [esp + 0x16], 0x4ba02b2
mov dword [esp + 0x1a], 0x18b906ba
mov dword [esp + 0x1e], 0x1ce41aaa
mov word [esp + 0x22], 0x1e1d
mov eax, 0xdd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xd3]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
add ecx, 0xc29a1573
mov edx, ecx
xor edx, 0x378c355c
and ecx, 0xc873caa3
add ecx, ecx
sub ecx, edx
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0xd3], cl
inc eax
cmp eax, 0xf7
jne 0x41a7a0
add edi, 2
movzx eax, word [ebx]
test ax, ax
mov esi, dword [esp + 4]
je 0x41a811
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41a800
mov word [edi], 0
movzx eax, word [esp + 0xa]
test ax, ax
je 0x41a841
lea ecx, [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a830
mov word [edi], 0
movzx eax, word [ebp]
test ax, ax
je 0x41a872
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41a860
mov word [edi], 0
mov dword [esp + 0xa], 0x2a
lea ebx, [esp + 0xa]
push 0
push 0
push 0xc00000
push ebx
push esi
push dword [esp + 0x54]
push dword [esp + 0x84]
call fcn.0041e6b0
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x43fd88]