Function at 0x41f4a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov eax, dword [esp + 0x68]
mov ebx, dword [eax + 4]
xor eax, eax
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne 0x41f4b0
lea ecx, [ebx + eax]
add ecx, 0xfffffffe
add eax, ebx
mov edx, 1
sub edx, eax
and edx, ebx
mov ebp, ebx
not ebp
and ebp, ecx
sub ebp, edx
mov ecx, dword [esp + 0x6c]
mov edi, dword [ecx + 4]
xor ecx, ecx
nop
nop
nop
nop
cmp word [edi + ecx], 0
lea ecx, [ecx + 2]
jne 0x41f4e0
mov edx, ebp
sar edx, 1
lea eax, [edi + ecx]
add eax, 0xfffffffe
mov dword [esp], eax
add ecx, edi
mov esi, 1
sub esi, ecx
and esi, edi
mov eax, edi
not eax
and eax, dword [esp]
sub eax, esi
sar eax, 1
and ebp, 0x36
mov dword [esp + 0x4c], edx
xor edx, 0x1b
add edx, ebp
mov dword [esp + 4], eax
add edx, eax
jns 0x41f528
mov edx, 0xffffffff
jmp 0x41f52a
add edx, edx
mov ebp, dword [esp + 0x68]
push edx
call fcn.004083b0
add esp, 4
mov dword [esp + 0x10], 0x11621f70
mov dword [esp + 0x14], 0x15771381
mov dword [esp + 0x18], 0x98a1777
mov dword [esp + 0x1c], 0xd4d0b28
mov dword [esp + 0x20], 0x19a0f84
mov dword [esp + 0x24], 0x59c0367
mov dword [esp + 0x28], 0x399d0791
mov dword [esp + 0x2c], 0x3da43ba9
mov dword [esp + 0x30], 0x314b3f1c
mov dword [esp + 0x34], 0x35a63357
mov dword [esp + 0x38], 0x29ad37a0
mov dword [esp + 0x3c], 0x2db32bb6
mov dword [esp + 0x40], 0x21422fb9
mov word [esp + 0x44], 0x2320
mov dword [esp + 0x46], 0
xor edx, edx
mov ecx, edx
add cl, 5
xor cl, byte [esp + edx + 0x10]
add cl, 0xe7
mov byte [esp + edx + 0x10], cl
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
cmp edx, 0x3a
jb 0x41f5b0
movzx ecx, word [ebx]
mov esi, eax
test cx, cx
je 0x41f5f1
add ebx, 2
mov esi, eax
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41f5e0
mov word [esi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x41f621
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f610
mov word [esi], 0
movzx ecx, word [edi]
test cx, cx
mov dword [esp + 0xc], eax
je 0x41f651
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41f640
mov word [esi], 0
mov esi, dword [ebp]
xor eax, eax
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x41f660
lea edx, [esi + eax]
add edx, 0xfffffffe
add eax, esi
mov edi, 1
sub edi, eax
and edi, esi
mov ecx, esi
not ecx
and ecx, edx
sub ecx, edi
mov eax, ecx
and eax, 2
mov dword [esp], eax
mov ebp, dword [ebp + 8]
xor edx, edx
cmp word [ebp + edx], 0
lea edx, [edx + 2]
jne 0x41f690
sar ecx, 1
lea edi, [edx + ebp]
add edi, 0xfffffffe
add edx, ebp
mov ebx, 1
sub ebx, edx
and ebx, ebp
mov edx, ebp
not edx
and edx, edi
sub edx, ebx
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax]
xor edi, edi
nop
nop
cmp word [ebx + edi], 0
lea edi, [edi + 2]
jne 0x41f6c0
xor ecx, 1
add dword [esp], ecx
sar edx, 1
lea eax, [ebx + edi]
add eax, 0xfffffffe
mov dword [esp + 8], eax
add edi, ebx
mov eax, 1
sub eax, edi
and eax, ebx
mov ecx, ebx
not ecx
and ecx, dword [esp + 8]
sub ecx, eax
sar ecx, 1
add edx, dword [esp]
lea eax, [ecx + edx]
add eax, 0x12
test eax, eax
jns 0x41f707
mov eax, 0xffffffff
jmp 0x41f710
add edx, ecx
lea eax, [edx*2 + 0x24]
push eax
call fcn.004083b0
add esp, 4
mov edi, eax
movzx eax, word [esi]
mov dword [esp], edi
test ax, ax
je 0x41f741
add esi, 2
mov edi, dword [esp]
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41f730
mov word [edi], 0x2f
mov dword [esp + 0x10], 0x11591f4d
mov dword [esp + 0x14], 0x15861398
mov dword [esp + 0x18], 0x9881773
mov dword [esp + 0x1c], 0xd910b9d
mov dword [esp + 0x20], 0x1900f9d
mov dword [esp + 0x24], 0x5530395
mov word [esp + 0x28], 0x704
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov eax, 0xec0a5185
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x13f5ae8b]
xor edx, eax
mov ecx, edx
and ecx, 0x66
add ecx, ecx
xor edx, 0x99
sub ecx, edx
mov byte [esp + eax + 0x13f5ae8b], cl
inc eax
cmp eax, 0xec0a51a5
jne 0x41f7a0
add edi, 2
movzx eax, word [ebp]
test ax, ax
mov esi, dword [esp + 0xc]
je 0x41f7f2
add ebp, 2
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41f7e0
mov word [edi], 0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x41f821
lea ecx, [esp + 0x12]
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 0x41f810
mov word [edi], 0
movzx eax, word [ebx]
test ax, ax
je 0x41f851
add ebx, 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 [ebx]
add ebx, 2
test ax, ax
jne 0x41f840
mov word [edi], 0
mov dword [esp + 0x10], 0x292a2b0a
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov edx, 0x8afe2b77
nop
movzx eax, byte [esp + edx + 0x7501d499]
mov ebx, eax
mov ebp, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x7d
mul cl
mov ecx, eax
mov eax, ebp
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xad
mov byte [esp + edx + 0x7501d499], al
inc edx
cmp edx, 0x8afe2b7e
jne 0x41f870
lea eax, [esp + 0x10]
push 0
push 0
push 0xc00000
push eax
push esi
push dword [esp + 0x14]
push dword [esp + 0x7c]
call fcn.00423460
add esp, 0x1c
mov ebx, eax
jmp dword [0x446e30]