Function at 0x44038a
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [esp + 0x18]
mov dword [esp], 0x97969948
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov esi, 0x66
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x66]
mov ebx, edx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x6d
mul cl
mov ecx, eax
add cl, dl
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, esi
add al, 2
mov byte [esp + esi - 0x66], al
inc esi
cmp esi, 0x6d
jne case.default.0x43ff87
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x44ab00]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
xor eax, eax
mov esi, dword [ecx]
xor edx, edx
cmp esi, ecx
setne dl
jmp dword [edx*4 + 0x44ab08]
mov eax, dword [esi + 0x28]
xor edx, edx
jmp dword [edx*4 + 0x44ab18]
mov esi, dword [esi]
xor edx, edx
cmp esi, ecx
setne dl
jmp dword [edx*4 + 0x44ab08]
xor edx, edx
cmp dword [esi + 0x18], edi
sete dl
jmp dword [edx*4 + 0x44ab10]
mov edx, 1
jmp dword [edx*4 + 0x44ab18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 8
pop esi
pop edi
pop ebx
ret
jmp dword [0x44ab3c]
mov dword [esp], 0x23226450
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax]
mov edx, eax
or edx, 0xb8
mov edi, 0x47935447
sub edi, eax
xor edx, edi
and edx, esi
xor edx, edi
lea esi, [edx + edx]
or esi, 0x33
xor edx, 0x99
sub edx, esi
inc dl
mov byte [esp + eax], dl
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
cmp eax, 8
jb 0x4400d0
nop
nop
nop
nop
mov edx, dword [ebp + 0x3c]
mov eax, dword [ebp + edx]
mov dword [esp], 0x23226450
mov dword [esp + 4], 0
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + esi]
mov ebx, esi
or ebx, 0xb8
mov edi, 0x47935447
sub edi, esi
xor ebx, edi
and ebx, ecx
xor ebx, edi
lea ecx, [ebx + ebx]
or ecx, 0x33
xor ebx, 0x99
sub ebx, ecx
inc bl
mov byte [esp + esi], bl
mov ecx, esi
and ecx, 1
xor esi, 1
lea esi, [esi + ecx*2]
cmp esi, 8
jb 0x440130
jmp dword [0x44ab44]
xor ebx, ebx
cmp eax, dword [esp]
setne bl
xor eax, eax
mov ecx, dword [esp + 0x40]
jmp dword [ebx*4 + 0x44ab48]
mov edi, dword [ebp + edx + 0x78]
mov esi, dword [ebp + edx + 0x7c]
test esi, esi
sete dl
test edi, edi
sete dh
or dh, dl
movzx edx, dh
jmp dword [edx*4 + 0x44ab50]
mov dword [esp + 0xc], esi
mov eax, dword [ebp + edi + 0x20]
add eax, ebp
mov dword [esp + 0x24], eax
mov eax, dword [ebp + edi + 0x24]
add eax, ebp
mov dword [esp + 0x14], eax
mov eax, dword [ebp + edi + 0x1c]
add eax, ebp
mov dword [esp + 0x10], eax
mov esi, dword [ebp + edi + 0x18]
xor edx, edx
xor eax, eax
mov dword [esp + 0x20], esi
cmp edx, esi
setb al
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], edi
jmp dword [eax*4 + 0x44ab58]
mov eax, dword [esp + 0x24]
mov dword [esp + 8], edx
mov esi, dword [eax + edx*4]
add esi, ebp
mov eax, 0xffffffff
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edx
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
lea edx, [edx + 1]
jne 0x440210
mov dword [esp], 0x626260f3
mov word [esp + 4], 0
xor edx, edx
nop
mov ebx, edx
add bl, 0xe8
xor bl, byte [esp + edx]
add bl, 0x78
mov byte [esp + edx], bl
inc edx
cmp edx, 6
jne 0x440230
test eax, eax
je 0x440260
mov edi, dword [esp]
cmp eax, 4
jae 0x440270
mov ebx, 0x36c0b43e
jmp 0x4402af
mov edx, 0x36c0b43e
jmp 0x4402d0
mov edx, ebp
and edx, 0xfffffffc
mov ebx, 0x36c0b43e
nop
nop
nop
nop
nop
nop
movsx ecx, byte [esi]
xor ecx, ebx
imul ecx, edi
movsx ebx, byte [esi + 1]
xor ebx, ecx
imul ebx, edi
movsx ecx, byte [esi + 2]
xor ecx, ebx
imul ecx, edi
movsx ebx, byte [esi + 3]
add esi, 4
xor ebx, ecx
imul ebx, edi
add edx, 0xfffffffc
jne 0x440280
mov ecx, dword [esp + 0x40]
mov edx, ebx
test al, 3
je 0x4402d0
and ebp, 3
xor eax, eax
nop
nop
nop
nop
nop
nop
movsx edx, byte [esi + eax]
xor edx, ebx
imul edx, edi
inc eax
mov ebx, edx
cmp ebp, eax
jne 0x4402c0
xor eax, eax
cmp edx, ecx
setne al
jmp dword [eax*4 + 0x44ab60]
mov edx, dword [esp + 8]
inc edx
mov ebp, dword [esp + 0x3c]
xor eax, eax
cmp edx, dword [esp + 0x20]
setb al
jmp dword [eax*4 + 0x44ab58]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
xor ebx, ebx
mov edx, eax
sub edx, dword [esp + 0x18]
setae bl
mov ecx, dword [esp + 0x3c]
jmp dword [ebx*4 + 0x44ab68]
jmp dword [0x44ab7c]
xor ebx, ebx
cmp edx, dword [esp + 0xc]
setb bl
jmp dword [ebx*4 + 0x44ab80]
add ecx, eax
xor eax, eax
jmp dword [eax*4 + 0x44ab88]
xor eax, eax
mov edx, dword [case.0x43ff87.12]
jmp case.0x43ff87.35
mov eax, dword [esp + 0x1c]
jmp dword [eax*4 + 0x44ab88]
mov edx, dword [case.0x43ff87.12]
mov eax, ecx
nop
nop
jmp edx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov ecx, esp
sub esp, 8
mov eax, esp
jmp edx
mov edx, dword [ebp + 8]
movzx edx, word [edx]
mov dword [ebp - 0x10], edx
mov dword [ecx], 0x90aeddf
xor esi, esi
nop
nop
nop
nop
nop
movzx edi, byte [ecx + esi]
lea edx, [esi - 0x106a0b3d]
lea ebx, [esi*2 - 0x20d4167a]
neg ebx
add ebx, esi
add ebx, 0xc2
xor ebx, edx
and ebx, edi
xor ebx, edx
add bl, 0x31
mov byte [ecx + esi], bl
mov edx, esi
and edx, 1
mov edi, edx
not edi
add esi, edi
add esi, 2
mov edi, esi
xor edi, edx
and edx, esi
lea esi, [edi + edx*2]
cmp esi, 4
jb case.default.0x4403ed
xor edx, edx
mov esi, dword [ebp - 0x10]
cmp dword [ecx], esi
setne dl
jmp dword [edx*4 + 0x44abb0]
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov edx, dword [edx + ecx]
mov dword [ebp - 0x10], edx
mov dword [eax], 0x898ad0dc
mov word [eax + 4], 0
mov esi, 0x1c256ea3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [eax + esi - 0x1c256ea3]
mov ebx, esi
or ebx, edi
lea edx, [esi - 0x1c256e00]
and edx, edi
sub ebx, edx
lea edx, [ebx + ebx]
mov edi, edx
and edi, 0xa0
xor ebx, 0xd0
add ebx, edi
and edx, 2
xor ebx, 1
add ebx, edx
mov byte [eax + esi - 0x1c256ea3], bl
inc esi
cmp esi, 0x1c256ea9
jne 0x440420
xor edx, edx
mov esi, dword [ebp - 0x10]
cmp esi, dword [eax]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44abc8]
mov esi, dword [ebp + 8]
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 + 0x44abd0]
mov ecx, dword [ebp + 8]
mov esi, dword [ecx + edx]
add esi, ecx
mov edx, dword [ecx + edx + 0x10]
add edx, ecx
mov dword [ebp - 0x1c], edx
add ecx, 2
mov dword [ebp - 0x2c], ecx
mov edi, dword [case.0x43ff87.63]
mov dword [ebp - 0x10], esi
mov edx, dword [esi]
mov esi, edx
shr esi, 0x1f
mov ecx, dword [case.0x43ff87.67]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], ecx
jmp dword [esi*4 + 0x44abe8]
xor eax, eax
jmp dword [0x44abe4]
add dword [ebp - 0x10], 4
add dword [ebp - 0x1c], 4
mov edx, 1
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
jmp dword [edx*4 + 0x44ac20]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
mov esi, edx
shr esi, 0x1f
xor eax, eax
jmp dword [esi*4 + 0x44abe8]
xor ebx, ebx
test edx, edx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44abf0]
jmp edi
add edx, dword [ebp - 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x440550
mov dword [ebp - 0x24], 0x626260f3
mov word [ebp - 0x20], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0xe8
xor bl, byte [ebp + eax - 0x24]
add bl, 0x78
mov byte [ebp + eax - 0x24], bl
inc eax
cmp eax, 6
jne 0x440570
mov esi, 0x36c0b43e
sub edi, edx
je 0x440600
mov eax, dword [ebp - 0x24]
mov esi, edi
and esi, 3
mov dword [ebp - 0x30], esi
mov ebx, 0x36c0b43e
cmp edi, 4
jb 0x4405db
and edi, 0xfffffffc
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx esi, byte [edx]
xor esi, ebx
imul esi, eax
movsx ebx, byte [edx + 1]
xor ebx, esi
imul ebx, eax
movsx esi, byte [edx + 2]
xor esi, ebx
imul esi, eax
movsx ebx, byte [edx + 3]
add edx, 4
xor ebx, esi
imul ebx, eax
add edi, 0xfffffffc
jne 0x4405b0
mov esi, ebx
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x440600
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx esi, byte [edx + edi]
xor esi, ebx
imul esi, eax
inc edi
mov ebx, esi
cmp ecx, edi
jne 0x4405f0
xor eax, eax
cmp esi, dword [ebp + 0xc]
sete al
jmp dword [eax*4 + 0x44ac18]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
xor edx, edx
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
jmp dword [edx*4 + 0x44ac20]
mov ecx, dword [case.0x4403ed.4]
xor eax, eax
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 0x3c]
add ecx, ebp
mov eax, dword [ecx]
mov dword [esp], 0x696a2034
mov byte [esp + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0x67
xor bl, byte [esp + edx]
add bl, 0xfd
mov byte [esp + edx], bl
inc edx
cmp edx, 5
jne case.default.0x4406de
xor edx, edx
cmp eax, dword [esp]
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44ac30]
lea ebx, [ecx + 0x18]
movzx eax, word [ecx + 0x14]
mov edx, dword [case.0x4406de.3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edx
add ebx, eax
movzx ecx, word [ecx + 6]
mov ebp, dword [case.0x43ff87.95]
xor esi, esi
xor eax, eax
mov word [esp + 0xa], cx
cmp si, cx
setb al
mov edx, 1
jmp dword [eax*4 + 0x44ac48]
mov dword [esp + 0x10], esi
mov edi, 8
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xc], ebx
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sub edi, 1
jb 0x440770
movzx ebx, byte [esi]
inc esi
movzx ecx, byte [eax]
inc eax
cmp bl, cl
je 0x440750
sub ebx, ecx
jmp 0x440772
xor ebx, ebx
xor eax, eax
test ebx, ebx
sete al
mov esi, dword [esp + 0x10]
jmp dword [eax*4 + 0x44ac50]
inc esi
mov ebx, dword [esp + 0xc]
add ebx, 0x28
nop
nop
nop
nop
jmp ebp
xor eax, eax
cmp si, word [esp + 0xa]
setb al
jmp dword [eax*4 + 0x44ac48]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
setne al
mov edx, dword [esp + 0xc]
jmp dword [eax*4 + 0x44ac58]
xor eax, eax
cmp dword [esp + 0x34], 0
setne al
jmp dword [eax*4 + 0x44ac60]
mov eax, dword [esp + 0x28]
add eax, dword [edx + 0xc]
mov dword [ecx], eax
xor eax, eax
cmp dword [esp + 0x34], 0
setne al
jmp dword [eax*4 + 0x44ac60]
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
nop
nop
nop
xor edx, edx
jmp dword [0x44ac74]
mov al, 1
jmp dword [edx*4 + 0x44ac88]
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
inc dword [ebx]
out 0xff, eax
inc ebx
add ch, ch
inc dword [ebx]
int3