Function at 0x43fe1a
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 8
mov ecx, dword [esp + 0x18]
mov dword [esp], 0x393a3bec
mov word [esp + 4], 0
mov eax, 0x4b
nop
nop
nop
movzx edx, byte [esp + eax - 0x4b]
mov esi, edx
xor esi, 0x80
and esi, eax
or edx, eax
xor edx, esi
add dl, 0x89
mov byte [esp + eax - 0x4b], dl
inc eax
cmp eax, 0x51
jne case.default.0x43f9ad
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor edx, edx
test ecx, ecx
sete dl
jmp dword [edx*4 + 0x44a988]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x43f9ad.7]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44a990]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
xor eax, eax
mov esi, dword [case.0x43f9ad.7]
mov edi, dword [edx]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44a990]
mov eax, dword [edi + 0x30]
xor ebx, ebx
jmp dword [ebx*4 + 0x44a9b0]
mov edi, dword [edi]
xor ebx, ebx
cmp edi, edx
setne bl
jmp dword [ebx*4 + 0x44a990]
xor ebx, ebx
cmp dword [edi + 0x18], ecx
sete bl
jmp dword [ebx*4 + 0x44a998]
jmp esi
mov ebx, 1
jmp dword [ebx*4 + 0x44a9b0]
add esp, 8
pop esi
pop edi
pop ebx
ret
mov eax, dword fs:[edx]
jmp dword [0x44a9c0]
mov eax, dword fs:[edx]
mov eax, dword fs:[edx]
jmp dword [0x44a9c0]
xor edx, edx
test ebp, ebp
sete dl
jmp dword [edx*4 + 0x44a9c8]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov edi, dword [case.0x43f9ad.24]
mov ebx, dword [edx]
mov esi, 1
xor eax, eax
jmp case.0x43f9ad.21
jmp dword [0x44a9dc]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebx + 0x28]
xor ecx, ecx
jmp dword [ecx*4 + 0x44aa00]
mov ebx, dword [ebx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp edi
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x44a9f0]
xor ecx, ecx
cmp dword [ebx + 0x18], ebp
sete cl
jmp dword [ecx*4 + 0x44a9f8]
jmp dword [esi*4 + 0x44aa00]
mov edi, dword [esi + eax + 0x78]
mov edx, dword [esi + eax + 0x7c]
test edx, edx
sete al
test edi, edi
sete cl
or cl, al
movzx ecx, cl
xor eax, eax
jmp dword [ecx*4 + 0x44aa38]
mov ecx, dword [esi + edi + 0x20]
add ecx, esi
mov eax, dword [esi + edi + 0x24]
add eax, esi
mov ebx, dword [esi + edi + 0x1c]
add ebx, esi
jmp dword [0x44aa48]
jmp dword [0x44aa5c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
xor edx, edx
xor eax, eax
cmp edx, dword [esi + edi + 0x18]
setb al
mov dword [esp + 0x20], 1
mov dword [esp + 0xc], edi
jmp dword [eax*4 + 0x44aa70]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ecx
mov eax, edx
mov dword [esp + 0x10], edx
mov edx, dword [ecx + edx*4]
add edx, esi
mov eax, 0xffffffff
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov esi, ecx
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
lea ecx, [ecx + 1]
jne 0x43fc00
mov dword [esp], 0x4e4e48bf
mov edi, 0xd
mov ebx, 0xf2
movzx ebp, byte [esp + ebx - 0xf2]
mov ecx, edi
xor ecx, ebx
and ecx, ebp
xor ecx, ebx
add cl, 0x46
mov byte [esp + ebx - 0xf2], cl
dec edi
inc ebx
cmp edi, 9
jne 0x43fc20
test eax, eax
je 0x43fc60
mov ebp, dword [esp]
mov ecx, ebp
not ecx
cmp eax, 1
jne 0x43fc70
mov ebx, 0x3205b60c
test al, 1
jne 0x43fcd7
jmp 0x43fcf2
mov ebx, 0x3205b60c
jmp 0x43fcf2
and esi, 0xfffffffe
mov ebx, 0x3205b60c
mov dword [esp + 8], ecx
nop
nop
nop
nop
mov dword [esp + 0x28], edx
movsx ecx, byte [edx]
xor ecx, ebx
mov ebx, ecx
not ebx
and ebx, ebp
mov edi, ecx
and edi, dword [esp + 8]
mov edx, dword [esp + 0x28]
imul edi, ebx
mov ebx, ecx
and ebx, ebp
or ecx, ebp
imul ecx, ebx
add ecx, edi
movsx ebx, byte [edx + 1]
add edx, 2
xor ebx, ecx
mov ecx, ebx
not ecx
and ecx, ebp
mov edi, ebx
and edi, dword [esp + 8]
imul edi, ecx
mov ecx, ebx
and ecx, ebp
or ebx, ebp
imul ebx, ecx
add ebx, edi
add esi, 0xfffffffe
jne 0x43fc80
mov ecx, dword [esp + 8]
test al, 1
je 0x43fcf2
movsx eax, byte [edx]
xor ebx, eax
mov eax, ebx
not eax
and eax, ebp
and ecx, ebx
imul ecx, eax
mov eax, ebx
and eax, ebp
or ebx, ebp
imul ebx, eax
add ebx, ecx
xor eax, eax
cmp ebx, dword [esp + 0x44]
setne al
jmp dword [eax*4 + 0x44aa78]
mov edx, dword [esp + 0x10]
inc edx
xor eax, eax
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0xc]
cmp edx, dword [esi + edi + 0x18]
setb al
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
jmp dword [eax*4 + 0x44aa70]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
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 + 0xc]
setae dl
mov esi, dword [esp + 0x40]
jmp dword [edx*4 + 0x44aa80]
xor edx, edx
cmp ecx, dword [esp + 0x18]
setb dl
jmp dword [edx*4 + 0x44aa88]
add esi, eax
xor eax, eax
jmp dword [eax*4 + 0x44aa90]
xor eax, eax
mov ecx, dword [case.0x43f9ad.36]
jmp case.0x43f9ad.67
mov eax, dword [esp + 0x20]
jmp dword [eax*4 + 0x44aa90]
mov ecx, dword [case.0x43f9ad.36]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov eax, dword [esi + 0x3c]
mov edx, dword [esi + eax]
mov dword [esp], 0x3736e4e8
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
add bl, 0x76
xor bl, byte [esp + ecx]
add bl, 0xb2
mov byte [esp + ecx], bl
inc ecx
cmp ecx, 4
jne case.default.0x43fdcc
xor ecx, ecx
cmp edx, dword [esp]
setne cl
jmp dword [ecx*4 + 0x44aa20]
mov ecx, dword [case.0x43f9ad.36]
xor eax, eax
nop
nop
nop
nop
nop
jmp ecx
movzx eax, word [esi]
mov dword [esp], 0x6362cbdd
mov word [esp + 4], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x18
xor dl, byte [esp + ecx]
add dl, 0x88
mov byte [esp + ecx], dl
inc ecx
cmp ecx, 6
jne 0x43fe00
jmp dword [0x44aa14]
mov dword [esp], 0x6362cbdd
mov word [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x18
xor cl, byte [esp + eax]
add cl, 0x88
mov byte [esp + eax], cl
inc eax
cmp eax, 6
jne 0x43fe30
jmp case.0x43f9ad.31
xor ecx, ecx
cmp dword [esp], eax
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x44aa18]
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + ecx]
mov dword [esp], 0x23226450
mov byte [esp + 4], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx]
mov edi, 0xdb6deec7
sub edi, edx
or edi, esi
mov ebx, 0xc7
sub ebx, edx
and ebx, esi
xor ebx, edi
lea esi, [ebx + ebx]
not esi
add esi, ebx
mov ebx, esi
xor ebx, 0x18
or esi, 0xe7
and ebx, esi
add ebx, esi
inc bl
mov byte [esp + edx], bl
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
cmp edx, 5
jb case.default.0x43ff4f
mov edx, dword [esp]
xor ebx, ebx
cmp eax, edx
setne bl
xor eax, eax
jmp dword [ebx*4 + 0x44aab0]
mov esi, dword [esp + 0x38]
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 + 0x44aab8]
mov eax, dword [esp + 0x38]
mov esi, dword [eax + edx]
add esi, eax
mov ecx, dword [eax + edx + 0x10]
add ecx, eax
mov dword [esp + 0xc], ecx
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [0x44aae4]
mov dword [esp + 0x14], eax
mov ecx, dword [esi]
mov edx, ecx
shr edx, 0x1f
xor eax, eax
jmp dword [edx*4 + 0x44aac0]
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x10]
jmp dword [ecx*4 + 0x44aae8]
xor edx, edx
test ecx, ecx
setne dl
xor eax, eax
jmp dword [edx*4 + 0x44aac8]
mov dword [esp + 0x10], esi
add ecx, dword [esp + 0x1c]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
inc edx
cmp byte [ecx + eax], 0
jne 0x440000
mov dword [esp], 0x4e4e48bf
mov esi, 0xd
mov edi, 0xf2
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0xf2]
mov ebx, esi
xor ebx, edi
and ebx, ebp
xor ebx, edi
add bl, 0x46
mov byte [esp + edi - 0xf2], bl
dec esi
inc edi
cmp esi, 9
jne 0x440020
mov edi, 0x3205b60c
cmp edx, 1
je 0x4400e4
mov ebp, dword [esp]
mov esi, ebp
not esi
cmp edx, 2
je 0x4400c3
and eax, 0xfffffffe
mov dword [esp + 8], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x20], ecx
movsx ebx, byte [ecx]
xor ebx, edi
mov edi, ebx
not edi
and edi, ebp
mov esi, ebx
and esi, dword [esp + 8]
mov ecx, dword [esp + 0x20]
imul esi, edi
mov edi, ebx
and edi, ebp
or ebx, ebp
imul ebx, edi
add ebx, esi
movsx edi, byte [ecx + 1]
add ecx, 2
xor edi, ebx
mov esi, edi
not esi
and esi, ebp
mov ebx, edi
and ebx, dword [esp + 8]
imul ebx, esi
mov esi, edi
and esi, ebp
or edi, ebp
imul edi, esi
add edi, ebx
add eax, 0xfffffffe
jne 0x440070
mov esi, dword [esp + 8]
dec edx
test dl, 1
je 0x4400e4
movsx eax, byte [ecx]
xor edi, eax
mov eax, edi
not eax
and eax, ebp
and esi, edi
imul esi, eax
mov eax, edi
and eax, ebp
or edi, ebp
imul edi, eax
add edi, esi
xor eax, eax
cmp edi, dword [esp + 0x3c]
sete al
jmp dword [eax*4 + 0x44aad0]
mov esi, dword [esp + 0x10]
add esi, 4
add dword [esp + 0xc], 4
mov eax, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [case.0x43ff4f.1]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
stc
inc ebx
add dl, dl
stc
inc ebx
add byte [esi], bh
cli
inc ebx
add byte [edx + edi*8], bl
inc ebx
add byte [eax], dh
cli
inc ebx
add byte [eax], al
cli
inc ebx
add byte [eax], dh
cli
inc ebx
add byte [eax], dh
cli
inc ebx
add byte [edx], dh
cli
inc ebx
add byte [eax], dh
cli
inc ebx
add byte [esi], bh
cli
inc ebx
add byte [edx + edi*8], cl
inc ebx
add byte [ebx - 0x4fffbc06], ah
cli
inc ebx
add byte [edx + edi*8 - 0x54fffbd], bh
inc ebx
add dl, cl
cli
inc ebx
add al, dh
cli
inc ebx
add al, dh
cli
inc ebx
add al, dh
cli
inc ebx
add al, dh
cli
inc ebx
add dh, dh
cli
inc ebx
add byte [eax], ah
sti
inc ebx
add byte [eax], ah
sti
inc ebx
add byte [eax], ah
sti
inc ebx
add byte [edx], ah
sti
inc ebx
add ah, bh
cli
inc ebx
add byte [eax], dh
sti
inc ebx
add byte [edi], bh
sti
inc ebx
add byte [ebx + edi*8], al
inc ebx
add ah, bh
cli
inc ebx
add byte [eax], dl
sti
inc ebx
add dl, ah
std
inc ebx
add byte [edx], bl
inc byte [ebx]
sbb bh, dh
inc ebx
add byte [esi - 2], al
inc ebx
add byte [edx + 0x570043fd], dl
inc byte [ebx]
popal
sti
inc ebx
add bl, dl
std
inc ebx
add al, ah
std
inc ebx
add al, ah
std
inc ebx
add al, ah
std
inc ebx
add byte [edi - 2], dl
inc ebx
add byte [eax + 0x570043fb], dl
inc byte [ebx]
nop
sti
inc ebx
add byte [eax - 0x4fffbc05], dl
sti
inc ebx
add byte [eax - 0x4fffbc05], dl
sti
inc ebx
add byte [eax - 0x4fffbc05], dh
sti
inc ebx
add byte [esi + 0x10043fb], dh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [esi + 0x10043fb], dh
add byte [eax], al
add byte [ebp - 3], dh
inc ebx
add al, ah
sti
inc ebx
add byte [edi], ah
std
inc ebx
add byte [edx], al
std
inc ebx
add byte [eax - 3], ah
inc ebx
add byte [eax - 3], dl
inc ebx
add byte [eax - 3], ah
inc ebx
add byte [ebp - 3], dh
inc ebx
add byte [eax + 0x6b0043fd], al
std
inc ebx
add byte [eax - 0x6fffbc03], dl
std
inc ebx
add byte [edi - 2], dl
inc ebx
add byte [eax - 0x25ffbc03], dl
inc byte [ebx]
xor al, byte [ecx]
inc esp
add byte [esi - 1], dl
inc ebx
add byte [edx], dh
add dword [eax + eax + 0x7d], eax
inc dword [ebx]
xor al, byte [ecx]
inc esp
add bh, dl
inc dword [ebx]
and al, byte [ecx]
inc esp
add byte [edx], ah
add dword [eax + eax - 0x19], eax
inc dword [ebx]
hlt