Function at 0x441f1b
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebp, dword [esp + 0x1c]
mov dword [esp], 0xf0e0938
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0x82
mov edx, 0x933c67d
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x82]
mov esi, eax
xor esi, edx
and esi, edi
xor esi, edx
mov edi, esi
not edi
and edi, 0x75
mov ebx, esi
xor ebx, 0x8a
lea ebx, [ebx + edi*2]
and esi, 1
or ebx, 1
add ebx, esi
mov byte [esp + eax - 0x82], bl
inc eax
dec edx
cmp eax, 0x89
jne case.default.0x441f87
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor edx, edx
test ebp, ebp
sete dl
jmp dword [edx*4 + 0x44cf18]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x441f87.7]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44cf30]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x441f87.7]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44cf30]
xor ecx, ecx
cmp dword [edi + 0x18], ebp
sete cl
mov ebx, 1
jmp dword [ecx*4 + 0x44cf38]
mov eax, dword [edi + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp esi
jmp dword [ebx*4 + 0x44cf50]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44cf30]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x44cf8c]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x441f87.36]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44cf90]
jmp dword [0x44cf6c]
jmp dword [0x44cf7c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 4
pop esi
pop edi
pop ebx
ret
mov eax, dword [edi + 0x28]
xor ebx, ebx
jmp dword [ebx*4 + 0x44cfb0]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44cf90]
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44cf98]
jmp esi
mov ebx, 1
jmp dword [ebx*4 + 0x44cfb0]
mov ecx, dword [esp + 8]
mov eax, dword [ebp + ecx + 0x20]
add eax, ebp
mov dword [esp + 0x24], eax
mov eax, dword [ebp + ecx + 0x24]
add eax, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + ecx + 0x1c]
add eax, ebp
mov dword [esp + 0x18], eax
xor edx, edx
xor eax, eax
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44cff0]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], edx
mov ecx, dword [eax + edx*4]
add ecx, ebp
mov edx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x442250
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ecx
mov dword [esp], 0x323230a3
mov dword [esp + 4], 0
mov eax, 0xcb
mov edi, 0xb41e3434
movzx ebx, byte [esp + edi + 0x4be1cbcc]
mov esi, ebx
and esi, edi
mov ecx, esi
and ecx, 0x3d
mov ebp, esi
and ebp, 2
or esi, 2
imul esi, ebp
xor ebp, 2
imul ebp, ecx
add esi, ebp
mov ecx, esi
not ecx
and ecx, edi
and esi, eax
sub ecx, esi
add cl, bl
add cl, 0xfc
mov byte [esp + edi + 0x4be1cbcc], cl
dec eax
inc edi
cmp eax, 0xc3
jne 0x442280
test edx, edx
je 0x4422e0
mov eax, dword [esp]
cmp edx, 4
jae 0x4422f0
mov edi, 0x36c0b43e
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0xc]
jmp 0x44232f
mov esi, 0x36c0b43e
mov ebp, dword [esp + 0x3c]
jmp 0x442350
mov esi, dword [esp + 0x10]
and esi, 0xfffffffc
mov edi, 0x36c0b43e
mov ebx, dword [esp + 0xc]
movsx ecx, byte [ebx]
xor ecx, edi
imul ecx, eax
movsx edi, byte [ebx + 1]
xor edi, ecx
imul edi, eax
movsx ecx, byte [ebx + 2]
xor ecx, edi
imul ecx, eax
movsx edi, byte [ebx + 3]
add ebx, 4
xor edi, ecx
imul edi, eax
add esi, 0xfffffffc
jne 0x442300
mov ebp, dword [esp + 0x3c]
mov esi, edi
test dl, 3
mov ecx, dword [esp + 0x10]
je 0x442350
and ecx, 3
xor edx, edx
nop
movsx esi, byte [ebx + edx]
xor esi, edi
imul esi, eax
inc edx
mov edi, esi
cmp ecx, edx
jne 0x442340
xor eax, eax
cmp esi, dword [esp + 0x40]
setne al
jmp dword [eax*4 + 0x44d008]
mov edx, dword [esp + 0x14]
inc edx
xor eax, eax
mov ecx, dword [esp + 8]
cmp edx, dword [ebp + ecx + 0x18]
setb al
jmp dword [eax*4 + 0x44cff0]
mov ecx, 1
jmp dword [0x44d004]
jmp dword [ecx*4 + 0x44d020]
xor eax, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
cmp eax, dword [esp + 8]
setae cl
jmp dword [ecx*4 + 0x44d010]
mov ecx, eax
and ecx, 0xe38777b8
add ecx, ecx
mov edx, eax
xor edx, 0x1c788847
sub ecx, edx
mov edx, dword [esp + 8]
not edx
add edx, ecx
mov ecx, edx
xor ecx, 1
and edx, 1
lea ecx, [ecx + edx*2]
add ecx, 0x1c788847
xor edx, edx
cmp ecx, dword [esp + 0x20]
setb dl
mov ecx, 1
jmp dword [edx*4 + 0x44d018]
add ebp, eax
xor ecx, ecx
mov eax, ebp
jmp dword [ecx*4 + 0x44d020]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + ecx]
mov dword [esp], 0x595a0014
mov word [esp + 4], 0
mov edx, 0x709a9f90
mov esi, esp
nop
mov edi, edx
xor edi, 0xa
mov ebp, edx
or ebp, 0x95
and ebp, edi
mov ebx, edx
and ebx, 0xa
xor ebx, 0x2a
or ebx, ebp
xor bl, byte [esi]
xor bl, 0xd5
add bl, 0xd5
mov byte [esi], bl
dec edx
inc esi
cmp edx, 0x709a9f8a
jne 0x442490
mov edx, dword [esp]
xor ebx, ebx
cmp eax, edx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44d030]
mov esi, dword [esp + 0x34]
mov edx, dword [esi + ecx + 0x80]
cmp dword [esi + ecx + 0x84], 0
sete cl
test edx, edx
sete ch
or ch, cl
movzx ecx, ch
jmp dword [ecx*4 + 0x44d038]
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + edx]
add esi, ecx
mov edx, dword [ecx + edx + 0x10]
add edx, ecx
mov dword [esp + 8], edx
add ecx, 2
mov dword [esp + 0x14], ecx
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x44d060]
jmp dword [0x44d048]
mov ecx, dword [case.0x441f87.68]
nop
nop
nop
nop
jmp ecx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 8]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x10], eax
jmp dword [ecx*4 + 0x44d078]
mov ebx, dword [esi]
mov ecx, ebx
shr ecx, 0x1f
xor eax, eax
jmp dword [ecx*4 + 0x44d060]
xor ecx, ecx
test ebx, ebx
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44d068]
mov dword [esp + 0x1c], esi
add ebx, dword [esp + 0x14]
mov ecx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
cmp byte [ebx + ecx + 1], 0
lea ecx, [ecx + 1]
lea eax, [eax + 1]
jne 0x442590
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], ecx
mov dword [esp], 0x323230a3
mov dword [esp + 4], 0
mov edx, 0xcb
mov ebx, 0xb41e3434
movzx ebp, byte [esp + ebx + 0x4be1cbcc]
mov ecx, ebp
and ecx, ebx
mov eax, ecx
and eax, 0x3d
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, eax
add ecx, esi
mov eax, ecx
not eax
and eax, ebx
and ecx, edx
sub eax, ecx
mov ecx, ebp
add al, cl
add al, 0xfc
mov byte [esp + ebx + 0x4be1cbcc], al
dec edx
inc ebx
cmp edx, 0xc3
jne 0x4425c0
mov eax, 0x36c0b43e
mov ecx, dword [esp + 0xc]
test ecx, ecx
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
je 0x442681
mov ebx, dword [esp]
mov edx, 0x36c0b43e
cmp ecx, 4
jb 0x442660
mov eax, edi
and eax, 0xfffffffc
nop
nop
nop
nop
movsx ecx, byte [ebp]
xor ecx, edx
imul ecx, ebx
movsx edx, byte [ebp + 1]
xor edx, ecx
imul edx, ebx
movsx ecx, byte [ebp + 2]
xor ecx, edx
imul ecx, ebx
movsx edx, byte [ebp + 3]
add ebp, 4
xor edx, ecx
imul edx, ebx
add eax, 0xfffffffc
jne 0x442630
mov ecx, dword [esp + 0xc]
mov eax, edx
test cl, 3
je 0x442681
and edi, 3
xor ecx, ecx
nop
nop
nop
nop
movsx eax, byte [ebp + ecx]
xor eax, edx
imul eax, ebx
inc ecx
mov edx, eax
cmp edi, ecx
jne 0x442670
xor ecx, ecx
cmp eax, dword [esp + 0x38]
sete cl
jmp dword [ecx*4 + 0x44d070]
add esi, 4
add dword [esp + 8], 4
mov ecx, 1
mov eax, dword [esp + 0x10]
jmp dword [ecx*4 + 0x44d078]
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x44d0d8]
xor eax, eax
xor ecx, ecx
test eax, 0
sete cl
jmp dword [ecx*4 + 0x44d0b8]
inc esi
mov edx, dword [ebp - 0x10]
add edx, 0x28
xor eax, eax
cmp si, word [ebp - 0x16]
setb al
jmp dword [eax*4 + 0x44d0b0]
mov edi, 8
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x10], edx
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub edi, 1
jb 0x4426e0
movzx ebx, byte [ecx]
inc ecx
movzx edx, byte [eax]
inc eax
cmp bl, dl
je case.default.0x442738
xor eax, eax
sub ebx, edx
sete al
jmp dword [eax*4 + 0x44d0b8]
xor eax, eax
mov ecx, dword [ebp + 0x10]
test ecx, ecx
setne al
mov edx, dword [ebp - 0x10]
jmp dword [eax*4 + 0x44d0c0]
mov eax, dword [ebp + 8]
add eax, dword [edx + 0xc]
mov dword [ecx], eax
xor eax, eax
cmp dword [ebp + 0x14], 0
setne al
mov dword [ebp - 0x14], 0
jmp dword [eax*4 + 0x44d0d8]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
xor eax, eax
jmp dword [eax*4 + 0x44d0e0]
xor eax, eax
jmp 0x442793
mov eax, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44d0e0]
mov al, 1
mov ecx, dword [case.0x441f87.98]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
mov edx, dword [ebp - 0x10]
cmp dword [eax], edx
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44d0a0]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x3c]
lea ecx, [edx + eax]
mov eax, dword [edx + eax]
mov dword [ebp - 0x10], eax
mov dword [esi], 0x8f8e4c58
mov dword [esi + 4], 0
mov edx, 0xefb52ae2
mov edi, 0x1d
nop
nop
nop
nop
nop
movzx ebx, byte [esi + edx + 0x104ad51e]
mov eax, edx
or eax, ebx
not ebx
or ebx, edi
and ebx, eax
mov eax, ebx
and eax, 0x29
xor ebx, 0xa9
lea eax, [ebx + eax*2]
add al, 0xed
mov byte [esi + edx + 0x104ad51e], al
inc edx
dec edi
cmp edx, 0xefb52aea
jne 0x4427e0
xor edx, edx
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44d0a8]
movzx eax, word [ecx + 0x14]
lea edx, [ecx + eax]
add edx, 0x18
movzx ecx, word [ecx + 6]
xor esi, esi
xor eax, eax
mov word [ebp - 0x16], cx
cmp si, cx
setb al
mov dword [ebp - 0x14], 1
jmp dword [eax*4 + 0x44d0b0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
push eax
mov eax, esp
mov dword [eax], 0x81865d53
mov dword [eax + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [eax + ecx]
lea ebx, [ecx + 0x2f5ee9]
mov esi, 0x1fd0a116
sub esi, ecx
and esi, 0x11508108
and ebx, 0x294877
sub ebx, esi
mov esi, edx
and esi, ebx
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0x1b
mov byte [eax + ecx], bl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 8
jb 0x442870
push eax
push eax
mov eax, esp
sub esp, 8
mov esi, esp
mov ecx, dword [ebp + 8]
movzx ecx, word [ecx]
mov dword [ebp - 0x10], ecx
mov dword [eax], 0x81865d53
mov dword [eax + 4], 0
xor edx, edx
movzx ecx, byte [eax + edx]
lea ebx, [edx + 0x2f5ee9]
mov edi, 0x1fd0a116
sub edi, edx
and edi, 0x11508108
and ebx, 0x294877
sub ebx, edi
mov edi, ecx
and edi, ebx
add edi, edi
sub ebx, edi
add bl, cl
add bl, 0x1b
mov byte [eax + edx], bl
mov ecx, edx
and ecx, 1
xor edx, 1
lea edx, [edx + ecx*2]
cmp edx, 8
jb 0x4428d0
jmp dword [0x44d09c]
pop ds
inc esp
add byte [edi + ebx + 0x10044], ch
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
lodsb al, byte [esi]
pop ds
inc esp
add byte [ebx], cl
and byte [eax + eax - 0x30], al
pop ds
inc esp
add ah, dh
pop ds
inc esp
add ah, ah
pop ds
inc esp
add al, dh
pop ds
inc esp
add al, dh
pop ds
inc esp
add ah, dh
pop ds
inc esp
add al, dh
pop ds
inc esp
add byte [ebx], cl
and byte [eax + eax - 5], al
pop ds
inc esp
add byte [eax - 0x3fffbbe0], dl
and byte [eax + eax - 0x40], al
and byte [eax + eax - 0x40], al
and byte [eax + eax - 0x40], al
and byte [eax + eax - 0x30], al
and byte [eax + eax - 0x30], al
and byte [eax + eax - 0x30], al
and byte [eax + eax - 0x30], al
and byte [eax + eax - 0x2a], al
and byte [eax + eax - 0x70], al
and byte [eax + eax - 0x70], al
and byte [eax + eax - 0x70], al
and byte [eax + eax - 0x6a], al
and byte [eax + eax - 0x24], al
and byte [eax + eax + 0xc], al
and dword [eax + eax + 0x20], eax
and dword [eax + eax - 0x10], eax
and byte [eax + eax + 0x20], al
and dword [eax + eax + 0x20], eax
and dword [eax + eax + 0x20], eax
and dword [eax + eax + 0x22], eax
and dword [eax + eax - 0x24], eax
and byte [eax + eax - 4], al
and byte [eax + eax + 0x74], al