Function at 0x41d800
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x80]
mov ebp, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + eax], 0
lea eax, [eax + 2]
jne 0x41d820
add eax, ebp
add eax, 0xfffffffe
mov ecx, ebp
not ecx
and ecx, eax
xor eax, ebp
add ecx, ecx
sub ecx, eax
mov eax, dword [esp + 0x88]
mov edi, dword [eax + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x41d850
sar ecx, 1
add eax, edi
add eax, 0xfffffffe
mov edx, edi
not edx
and edx, eax
xor eax, edi
add edx, edx
sub edx, eax
sar edx, 1
mov dword [esp + 0x58], edx
lea eax, [edx + ecx]
add eax, 0x1b
test eax, eax
jns 0x41d884
mov eax, 0xffffffff
jmp 0x41d886
add eax, eax
mov dword [esp + 0x5c], ecx
add ecx, 0x1b
mov dword [esp + 0x60], ecx
push eax
call fcn.004095a0
add esp, 4
mov dword [esp + 4], 0x237e218c
mov dword [esp + 8], 0x2785259b
mov dword [esp + 0xc], 0x3b863999
mov dword [esp + 0x10], 0x3f7b3d5c
mov dword [esp + 0x14], 0x338631b8
mov dword [esp + 0x18], 0x37883591
mov dword [esp + 0x1c], 0xbb309bb
mov dword [esp + 0x20], 0xfb00db3
mov dword [esp + 0x24], 0x3510160
mov dword [esp + 0x28], 0x7b205a1
mov dword [esp + 0x2c], 0x1ba319ac
mov dword [esp + 0x30], 0x1fb91da2
mov dword [esp + 0x34], 0x13be11a3
mov word [esp + 0x38], 0x1514
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
mov esi, 0x44237f88
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi - 0x44237f84]
mov edx, ecx
and edx, esi
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, esi
add cl, 0x58
mov byte [esp + esi - 0x44237f84], cl
inc esi
cmp esi, 0x44237fc3
jne 0x41d920
movzx ecx, word [ebp]
mov esi, eax
test cx, cx
je 0x41d972
add ebp, 2
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41d960
mov word [esi], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x41d9a1
lea edx, [esp + 6]
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 0x41d990
mov word [esi], 0
movzx ecx, word [edi]
test cx, cx
mov dword [esp + 0x64], eax
je 0x41d9d1
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 0x41d9c0
mov word [esi], 0
mov esi, dword [ebx]
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x41d9e0
lea ecx, [esi + eax]
add ecx, 0xfffffffe
mov eax, esi
not eax
and eax, ecx
xor ecx, esi
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [ecx + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx], 0
lea ecx, [ecx + 2]
jne 0x41da10
lea edx, [edi + ecx]
add edx, 0xfffffffe
mov ecx, edi
not ecx
and ecx, edx
xor edx, edi
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0x88]
mov ebp, dword [edx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + edx], 0
lea edx, [edx + 2]
jne 0x41da40
sar eax, 1
sar ecx, 1
lea ebx, [edx + ebp]
add ebx, 0xfffffffe
mov edx, ebp
not edx
and edx, ebx
xor ebx, ebp
add edx, edx
sub edx, ebx
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41da76
mov eax, 0xffffffff
jmp 0x41da7f
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.004095a0
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 0x44], eax
test cx, cx
je 0x41dab1
add esi, 2
mov eax, dword [esp + 0x44]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41daa0
mov dword [esp + 0x40], eax
mov word [eax], 0x2f
mov dword [esp + 4], 0xe3a7e1bf
mov dword [esp + 8], 0xe772e56c
mov dword [esp + 0xc], 0xdb44d97d
mov dword [esp + 0x10], 0xdf47dd4f
mov dword [esp + 0x14], 0xd34cd14f
mov dword [esp + 0x18], 0xd789d547
mov word [esp + 0x1c], 0xc9c8
mov dword [esp + 0x1e], 0
mov word [esp + 0x22], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 4]
lea ecx, [eax - 0xabf2ba8]
xor ecx, edx
lea edx, [ecx + ecx]
and edx, 0x6a01a08e
add ecx, 0x35bbda47
mov esi, ecx
sub esi, edx
mov ebx, esi
and ebx, edx
xor esi, edx
lea edx, [esi + ebx*2]
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 4], dl
lea ecx, [eax + eax]
and ecx, 2
mov edx, ecx
and edx, eax
xor ecx, eax
xor ecx, 1
lea eax, [ecx + edx*2]
cmp eax, 0x20
jb 0x41db10
mov edx, dword [esp + 0x40]
add edx, 2
movzx eax, word [edi]
test ax, ax
je 0x41db81
add edi, 2
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41db70
mov word [edx], 0
movzx eax, word [esp + 4]
test ax, ax
je 0x41dbb1
lea ecx, [esp + 6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41dba0
mov word [edx], 0
movzx eax, word [ebp]
test ax, ax
je 0x41dbe2
add ebp, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41dbd0
mov dword [esp + 0x40], edx
mov word [edx], 0
mov dword [esp + 4], 0x333231ea
mov eax, 0x21e63c33
mov ecx, 0x5e19c3cc
nop
nop
nop
movzx edi, byte [esp + ecx - 0x5e19c3c8]
lea edx, [eax - 0x21e63c00]
or edx, edi
lea ebx, [eax - 0x21000000]
and ebx, 0x801031
mov esi, ecx
and esi, 0x2014346
or esi, ebx
xor esi, 0xa3676f46
or esi, eax
lea ebx, [esi + esi]
not ebx
add ebx, esi
xor esi, edi
add esi, ebx
and ebx, edi
sub esi, ebx
not edx
lea ebx, [esi + esi]
not ebx
add ebx, esi
or ebx, edx
add bl, 4
mov byte [esp + ecx - 0x5e19c3c8], bl
dec eax
inc ecx
cmp eax, 0x21e63c2f
jne 0x41dc00
lea eax, [esp + 4]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x74]
push esi
push dword [esp + 0x58]
push dword [esp + 0x94]
call fcn.00421f10
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x446e28]