Function at 0x441122
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x13121160
mov byte [esp + 4], 0
mov eax, 0x3c
mov edx, 0xc3
movzx esi, byte [esp + eax - 0x3c]
mov ebx, edx
xor ebx, eax
and ebx, esi
xor ebx, eax
add bl, 0xd4
mov byte [esp + eax - 0x3c], bl
inc eax
dec edx
cmp eax, 0x41
jne case.default.0x440bc8
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x44b5a0]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x440bc8.8]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44b5a8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x440bc8.8]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44b5a8]
mov eax, dword [edi + 0x30]
xor ebx, ebx
jmp dword [ebx*4 + 0x44b5c8]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44b5a8]
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44b5b0]
jmp esi
mov ebx, 1
jmp dword [ebx*4 + 0x44b5c8]
add esp, 8
pop esi
pop edi
pop ebx
ret
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x44b5e0]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x440bc8.24]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44b5e8]
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44b5f0]
mov ebx, 1
jmp case.0x440bc8.21
mov eax, dword [edi + 0x28]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp esi
jmp dword [ebx*4 + 0x44b608]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44b5e8]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 4
pop esi
pop edi
pop ebx
ret
mov ecx, dword [esp + 0xc]
mov esi, dword [ebp + ecx + 0x7c]
mov edi, dword [ebp + ecx + 0x78]
test esi, esi
sete cl
test edi, edi
sete dl
or dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x44b630]
mov dword [esp + 0x10], esi
mov eax, dword [ebp + edi + 0x20]
add eax, ebp
mov dword [esp + 0xc], eax
mov eax, dword [ebp + edi + 0x24]
add eax, ebp
mov dword [esp + 0x18], eax
mov eax, dword [ebp + edi + 0x1c]
add eax, ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
mov edx, dword [ebp + edi + 0x18]
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x24], edx
cmp ecx, edx
setb al
mov dword [esp + 0x20], 1
jmp dword [eax*4 + 0x44b638]
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov esi, dword [eax + ecx*4]
add esi, ebp
mov ebx, 0xffffffff
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
cmp byte [esi + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x440eb0
mov dword [esp], 0xf2f2f063
mov byte [esp + 4], 0
xor eax, eax
nop
nop
nop
mov edx, eax
add dl, 0xd4
xor dl, byte [esp + eax]
add dl, 0xdc
mov byte [esp + eax], dl
inc eax
cmp eax, 5
jne 0x440ed0
test ebx, ebx
je 0x440f00
mov edi, dword [esp]
cmp ebx, 4
jae 0x440f10
mov eax, 0x3205b60c
jmp 0x440f4f
mov edx, 0x3205b60c
jmp 0x440f70
mov edx, ecx
and edx, 0xfffffffc
mov eax, 0x3205b60c
nop
nop
nop
nop
nop
nop
movsx ebp, byte [esi]
xor ebp, eax
imul ebp, edi
movsx eax, byte [esi + 1]
xor eax, ebp
imul eax, edi
movsx ebp, byte [esi + 2]
xor ebp, eax
imul ebp, edi
movsx eax, byte [esi + 3]
add esi, 4
xor eax, ebp
imul eax, edi
add edx, 0xfffffffc
jne 0x440f20
mov ebp, dword [esp + 0x3c]
mov edx, eax
test bl, 3
je 0x440f70
and ecx, 3
xor ebx, ebx
nop
nop
nop
nop
nop
movsx edx, byte [esi + ebx]
xor edx, eax
imul edx, edi
inc ebx
mov eax, edx
cmp ecx, ebx
jne 0x440f60
xor eax, eax
cmp edx, dword [esp + 0x40]
setne al
jmp dword [eax*4 + 0x44b640]
mov ecx, dword [esp + 8]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x24]
setb al
jmp dword [eax*4 + 0x44b638]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov ecx, eax
sub ecx, dword [esp + 0x1c]
setae dl
jmp dword [edx*4 + 0x44b648]
xor edx, edx
cmp ecx, dword [esp + 0x10]
setb dl
jmp dword [edx*4 + 0x44b650]
add ebp, eax
xor ecx, ecx
mov eax, ebp
jmp dword [ecx*4 + 0x44b668]
mov ecx, dword [esp + 0x20]
jmp dword [ecx*4 + 0x44b668]
xor eax, eax
int3
mov ecx, dword [ebp + 0x3c]
mov eax, dword [ebp + ecx]
mov dword [esp], 0x4f4e8cb8
mov word [esp + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x12
xor bl, byte [esp + edx]
add bl, 0xa6
mov byte [esp + edx], bl
inc edx
cmp edx, 6
jne case.default.0x44108e
xor edx, edx
cmp eax, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44b678]
mov edx, dword [ebp + ecx + 0x80]
cmp dword [ebp + ecx + 0x84], 0
sete cl
test edx, edx
sete ch
or ch, cl
movzx ecx, ch
jmp dword [ecx*4 + 0x44b680]
mov esi, dword [ebp + edx]
add esi, ebp
mov ecx, dword [ebp + edx + 0x10]
add ecx, ebp
mov dword [esp + 0xc], ecx
add ebp, 2
mov edi, dword [case.0x440bc8.62]
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x1f
mov dword [esp + 0x10], ebp
mov dword [esp + 8], edi
jmp dword [edx*4 + 0x44b688]
jmp edi
xor edx, edx
test ecx, ecx
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44b6a0]
mov dword [esp + 0x14], esi
add ecx, ebp
mov edx, 0xffffffff
xor eax, eax
nop
mov esi, eax
cmp byte [ecx + edx + 1], 0
lea edx, [edx + 1]
lea eax, [eax + 1]
jne 0x441140
mov dword [esp], 0xf2f2f063
mov byte [esp + 4], 0
xor eax, eax
nop
nop
nop
mov ebx, eax
add bl, 0xd4
xor bl, byte [esp + eax]
add bl, 0xdc
mov byte [esp + eax], bl
inc eax
cmp eax, 5
jne 0x441160
mov eax, 0x3205b60c
test edx, edx
je 0x4411e0
mov ebp, dword [esp]
mov edi, 0x3205b60c
cmp edx, 4
jb 0x4411bb
mov eax, esi
and eax, 0xfffffffc
nop
movsx ebx, byte [ecx]
xor ebx, edi
imul ebx, ebp
movsx edi, byte [ecx + 1]
xor edi, ebx
imul edi, ebp
movsx ebx, byte [ecx + 2]
xor ebx, edi
imul ebx, ebp
movsx edi, byte [ecx + 3]
add ecx, 4
xor edi, ebx
imul edi, ebp
add eax, 0xfffffffc
jne 0x441190
mov eax, edi
test dl, 3
je 0x4411e0
and esi, 3
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx eax, byte [ecx + edx]
xor eax, edi
imul eax, ebp
inc edx
mov edi, eax
cmp esi, edx
jne 0x4411d0
xor ecx, ecx
cmp eax, dword [esp + 0x34]
sete cl
jmp dword [ecx*4 + 0x44b6a8]
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
or eax, dword [eax + eax - 0x13]
or eax, dword [eax + eax + 0x4e]
or al, 0x44
add byte [esp + ecx], ch
inc esp
add byte [eax + 0xc], al
inc esp
add byte [eax], dl
or al, 0x44
add byte [eax + 0xc], al
inc esp
add byte [eax + 0xc], al
inc esp
add byte [eax + 0xc], al
inc esp
add byte [edx + 0xc], al
inc esp
add byte [esi + 0xc], cl
inc esp
add byte [esp + ecx], bl
inc esp
add byte [eax - 0x5fffbbf4], ah
or al, 0x44
add byte [eax - 0x5dffbbf4], ah
or al, 0x44
add byte [eax + 0x1900440c], dh
or eax, 0xd1f0044
inc esp
add al, dl
or al, 0x44
add bh, bl
or al, 0x44
add al, dh
or al, 0x44
add byte [eax], al
or eax, 0xd000044
inc esp
add byte [eax], al
or eax, 0xd020044
inc esp
add byte [edi], bl
or eax, 0xd090044
inc esp
add byte [ebp - 0x1bffbbf3], cl
or eax, 0xfe40044
inc esp
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ah, ch