Function at 0x41cd50
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov edi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41cd70
mov esi, dword [ecx + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41cd90
mov ecx, eax
sar ecx, 1
sar edx, 1
and eax, 0x36
mov dword [esp + 0x48], ecx
xor ecx, 0x1b
add ecx, eax
add ecx, edx
mov dword [esp + 0x4c], edx
mov dword [esp + 8], esi
jns 0x41cdc2
mov ecx, 0xffffffff
jmp 0x41cdc4
add ecx, ecx
push ecx
call fcn.0040ca10
add esp, 4
mov dword [esp], eax
mov dword [esp + 0xc], 0x633e610c
mov dword [esp + 0x10], 0x6705651b
mov dword [esp + 0x14], 0x7b067919
mov dword [esp + 0x18], 0x7f3b7d5c
mov dword [esp + 0x1c], 0x730671f8
mov dword [esp + 0x20], 0x77087511
mov dword [esp + 0x24], 0x8bf389fb
mov dword [esp + 0x28], 0x8ff08df3
mov dword [esp + 0x2c], 0x83d181a0
mov dword [esp + 0x30], 0x87f285e1
mov dword [esp + 0x34], 0x9be399ec
mov dword [esp + 0x38], 0x9ff99de2
mov dword [esp + 0x3c], 0x93fe91e3
mov word [esp + 0x40], 0x9594
mov dword [esp + 0x42], 0
xor ecx, ecx
mov eax, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0xc]
lea ebx, [ecx + 0x6c42ba68]
and ebx, edx
add edx, ecx
add edx, 0x6c42ba68
mov ebp, edx
not ebp
and ebp, 1
mov esi, edx
or esi, 0xfe
add ebx, ebx
sub edx, ebx
add edx, esi
add edx, ebp
add dl, 0xf9
mov byte [esp + ecx + 0xc], dl
mov edx, ecx
xor eax, 1
add eax, ecx
and ecx, 1
and edx, 0x3e
sub eax, edx
add eax, ecx
mov ecx, eax
cmp eax, 0x3a
jb 0x41ce50
movzx ecx, word [edi]
mov edx, dword [esp]
mov eax, edx
test cx, cx
je 0x41cec1
add edi, 2
mov eax, edx
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41ceb0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
mov esi, dword [esp + 8]
je 0x41cef1
lea edx, [esp + 0xe]
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 0x41cee0
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x41cf21
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 0x41cf10
mov word [eax], 0
mov eax, dword [esp + 0x6c]
mov ebp, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + eax + 2], 0
lea eax, [eax + 2]
jne 0x41cf40
sar eax, 1
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41cf60
mov dword [esp + 0x50], edx
inc eax
sar ecx, 1
mov edx, ecx
and edx, eax
add edx, edx
mov esi, dword [esp + 0x70]
mov edi, dword [esi]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + esi + 2], 0
lea esi, [esi + 2]
jne 0x41cf90
xor ecx, eax
sar esi, 1
add ecx, edx
lea eax, [esi + ecx]
add eax, 0x12
test eax, eax
jns 0x41cfb2
mov eax, 0xffffffff
jmp 0x41cfbb
add ecx, esi
lea eax, [ecx*2 + 0x24]
mov dword [esp + 4], edi
push eax
call fcn.0040ca10
add esp, 4
movzx ecx, word [ebp]
mov edi, eax
test cx, cx
je 0x41cff2
add ebp, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41cfe0
mov dword [esp + 8], eax
mov word [edi], 0x2f
mov dword [esp + 0xc], 0x91d99fcd
mov dword [esp + 0x10], 0x95069318
mov dword [esp + 0x14], 0x89089733
mov dword [esp + 0x18], 0x8d118b1d
mov dword [esp + 0x1c], 0x81108f1d
mov dword [esp + 0x20], 0x85d38315
mov word [esp + 0x24], 0x8784
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov esi, 0xc0be5225
mov ebp, 0xda
nop
nop
nop
nop
nop
movzx ebx, byte [esp + esi + 0x3f41ade7]
mov eax, esi
or eax, ebx
mov ecx, ebx
not ecx
or ecx, ebp
and ecx, eax
lea edx, [ecx + ecx]
not edx
add edx, ecx
and edx, esi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x7d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x47
mov byte [esp + esi + 0x3f41ade7], al
inc esi
dec ebp
cmp esi, 0xc0be5245
jne 0x41d050
add edi, 2
mov ecx, dword [esp + 0x50]
movzx eax, word [ecx]
test ax, ax
je 0x41d0d3
add ecx, 2
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 4]
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41d0c0
jmp 0x41d0db
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 4]
mov word [edi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x41d101
lea ecx, [esp + 0xe]
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41d0f0
mov word [edi], 0
movzx eax, word [edx]
test ax, ax
je 0x41d131
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x41d120
mov word [edi], 0
mov dword [esp + 0xc], 0x191a1bea
xor eax, eax
movzx ecx, byte [esp + eax + 0xc]
mov edx, eax
and edx, 2
mov esi, eax
or esi, 2
imul esi, edx
xor edx, 2
mov ebx, eax
and ebx, 1
neg ebx
and ebx, edx
mov edx, eax
xor edx, 0xc6d61cfb
add edx, ebx
add edx, esi
mov esi, edx
and esi, ecx
mov ebx, ecx
add ebx, edx
not ebx
lea esi, [ebx + esi*2]
and esi, edx
add esi, esi
mov ebx, esi
not ebx
and ebx, edx
not edx
and edx, esi
sub ebx, edx
add bl, cl
add bl, 0x19
mov byte [esp + eax + 0xc], bl
inc eax
cmp eax, 4
jne 0x41d140
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
mov ebx, dword [esp + 0x10]
push ebx
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x80]
call fcn.004205a0
add esp, 0x1c
mov byte [esp + 4], al
jmp dword [0x444cf0]