Function at 0x41f126
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
mov edi, dword [eax + 4]
mov eax, 0xfffffffe
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ee70
sar eax, 1
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41ee90
sar ecx, 1
add eax, ecx
add eax, 0x21
mov ecx, eax
and ecx, 0x1e
xor eax, 0x1e
lea eax, [eax + ecx*2]
test eax, eax
jns 0x41eeb8
mov eax, 0xffffffff
jmp 0x41eeba
add eax, eax
push eax
call fcn.00408000
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x48], 0x1b311b4d
mov dword [esp + 0x4c], 0x1b431b36
mov dword [esp + 0x50], 0x1b9b1b35
mov dword [esp + 0x54], 0x1bc41bc6
mov dword [esp + 0x58], 0x1bb91bcf
mov dword [esp + 0x5c], 0x1bca1bd5
mov dword [esp + 0x60], 0x1bb41ba6
mov dword [esp + 0x64], 0x1b861b9c
mov dword [esp + 0x68], 0x1b9d1b81
mov dword [esp + 0x6c], 0x1b9f1b81
mov dword [esp + 0x70], 0x1b9f1b81
mov dword [esp + 0x74], 0x1b831b9b
mov dword [esp + 0x78], 0x1ba01b9e
mov dword [esp + 0x7c], 0x1baa1bd4
mov dword [esp + 0x80], 0x1c401bad
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [esp + eax*2 + 0x48]
lea ebp, [eax - 0x74c6d885]
mov edx, ebp
and edx, ecx
lea esi, [eax + ecx]
add esi, 0x8b39277b
not esi
lea esi, [esi + edx*2]
and esi, ebp
mov ebx, esi
and ebx, 2
mov ebp, esi
or ebp, 0xfffd
inc ebp
mov edx, esi
and edx, 0x27fd
imul edx, ebp
or esi, 2
imul esi, ebx
sub edx, esi
add edx, eax
add ecx, edx
add ecx, 0xffffeba3
mov word [esp + eax*2 + 0x48], cx
lea ecx, [eax + eax]
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0x1e
jb 0x41ef50
mov dword [esp + 4], 0xa3bba39b
mov dword [esp + 8], 0xa3b5a3bd
mov dword [esp + 0xc], 0xa38da3b9
mov dword [esp + 0x10], 0xa38ba38a
mov dword [esp + 0x14], 0xa384a383
mov dword [esp + 0x18], 0xa384a384
mov dword [esp + 0x1c], 0xa3b1a382
mov dword [esp + 0x20], 0xa3b2a3b9
mov dword [esp + 0x24], 0xa385a38b
mov dword [esp + 0x28], 0xa390a386
mov dword [esp + 0x2c], 0xa3b9a3c6
mov dword [esp + 0x30], 0xa38aa395
mov dword [esp + 0x34], 0xa38ea3ba
mov dword [esp + 0x38], 0xa38ba382
mov dword [esp + 0x3c], 0xa38aa38c
mov dword [esp + 0x40], 0xa3cda3ce
mov dword [esp + 0x44], 0xa308a3cc
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
lea ecx, [eax - 0x16b1]
xor cx, word [esp + eax*2 + 4]
add ecx, 0xffffb588
mov word [esp + eax*2 + 4], cx
inc eax
cmp eax, 0x22
jne 0x41f040
movzx ecx, word [edi]
mov ebp, dword [esp]
mov eax, ebp
test cx, cx
je 0x41f081
add edi, 2
mov eax, ebp
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41f070
mov word [eax], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x41f0b3
lea edx, [esp + 6]
mov esi, dword [esp + 0xa0]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41f0a0
jmp 0x41f0ba
mov esi, dword [esp + 0xa0]
mov word [eax], 0
mov edx, dword [esp + 0xa4]
movzx ecx, word [edx]
test cx, cx
je 0x41f0f1
add edx, 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 [edx]
add edx, 2
test cx, cx
jne 0x41f0e0
mov word [eax], 0
movzx ecx, word [esp + 0x48]
test cx, cx
je 0x41f121
lea edx, [esp + 0x4a]
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 0x41f110
mov word [eax], 0
mov eax, dword [esp + 0xa8]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41f140
mov ecx, dword [esp + 0x9c]
mov edx, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41f160
mov edi, dword [esi]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x41f180
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xb
test eax, eax
jns 0x41f1a4
mov eax, 0xffffffff
jmp 0x41f1ad
add ecx, edx
lea eax, [ecx*2 + 0x16]
push eax
call fcn.00408000
add esp, 4
mov edi, eax
mov dword [esp + 4], 0xc3a9c3a0
mov dword [esp + 8], 0xc396c395
mov dword [esp + 0xc], 0xc398c3ae
mov dword [esp + 0x10], 0xc3d1c39e
mov word [esp + 0x14], 0xc30f
mov eax, 0x31a6c06f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [esp + eax*2 - 0x634d80da]
xor ecx, eax
add ecx, 0xe4632b0e
mov edx, ecx
and edx, 0x7c87
xor ecx, 0x72c9fc87
lea edx, [ecx + edx*2]
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
add ecx, 0xffffd4f2
mov word [esp + eax*2 - 0x634d80da], cx
inc eax
cmp eax, 0x31a6c078
jne 0x41f1f0
movzx ecx, word [esp + 4]
mov eax, edi
test cx, cx
je 0x41f261
lea edx, [esp + 6]
mov eax, edi
nop
nop
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 0x41f250
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41f291
add ebx, 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 [ebx]
add ebx, 2
test cx, cx
jne 0x41f280
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esp + 0x9c]
mov ecx, dword [ecx]
movzx edx, word [ecx]
test dx, dx
je 0x41f2c1
add ecx, 2
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41f2b0
mov word [eax], 0x5f
add eax, 2
mov ecx, dword [esi]
movzx edx, word [ecx]
test dx, dx
je 0x41f2f1
add ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x41f2e0
mov word [eax], 0
mov dword [esp + 4], 0xfbc6fb3f
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [esp + eax*2 + 4]
mov ebx, 0xebd67152
sub ebx, eax
and ebx, 0xe0025053
or ebx, 0x4090c88
xor ebx, edx
mov esi, ebx
xor esi, 0x7022d277
add ebx, ebx
xor ebx, 0x6045a4ef
sub esi, ebx
mov ebx, 0x7152
sub ebx, eax
or ebx, esi
add ebx, eax
add ebx, ebx
mov esi, eax
sub esi, ebx
add edx, esi
add edx, 0xfffffbe9
mov word [esp + eax*2 + 4], dx
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x41f310
lea eax, [esp + 4]
push 0
push 1
push 0
push eax
push ebp
push edi
push dword [esp + 0xb0]
call fcn.0041f650
add esp, 0x1c
mov ebx, eax
jmp dword [0x43fbac]