Function at 0x43c580
Capabilities:
Encode data using xor

Disassembly:
mov ch, 0x3d
cld
sti
and al, 0x85
mov eax, 0xff004442
and eax, 0x4442c0
push esi
call fcn.00408bd0
add esp, 4
mov eax, dword [0x4442d4]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
clc
mov eax, 0xc62484c7
mov dword [esp + 0xc6], 0xbccfbacc
mov dword [esp + 0xca], 0xb0c0bec1
retf 0
add cl, al
mov esi, 0x84c7b0c0
invalid
test byte [esi + ecx*8], ah
mov dword [esp + 0xc6], 0xbccfbacc
mov dword [esp + 0xca], 0xb0c0bec1
retf 0
add cl, al
invalid
invalid
invalid
retf 0
add byte [eax], al
sar dword [esi - 0x7b384f40], 0x24
invalid
test byte [esi + ecx*8], ah
mov dword [esp + 0xce], 0xb4c8b2ce
mov dword [esp + 0xd2], 0xc8feb6d9
mov dword [esp + 0xd6], 0xccfccafa
mov dword [esp + 0xda], 0xc08ccef8
mov dword [esp + 0xde], 0xc485c287
ret 0xc485
mov dword [esp + 0xe2], 0xd8f3c6f5
mov dword [esp + 0xe6], 0xdce8dae8
mov dword [esp + 0xea], 0xd0eedeec
mov dword [esp + 0xee], 0xd4b7d2e0
mov dword [esp + 0xf2], 0xe895d6e6
mov dword [esp + 0xf6], 0xeca3eaa1
mov dword [esp + 0xfa], 0xe0dfeeac
mov dword [esp + 0xfe], 0xe4d2e2d1
mov dword [esp + 0x102], 0xf8d3e6d5
add dword [eax], eax
add ch, dl
out 0xd3, al
clc
add byte [eax], al
add dh, cl
mov dl, 0xc8
mov ah, 0xc7
test byte [edx + edx*8], ah
add byte [eax], al
add cl, bl
mov dh, 0xfe
enter 0xffffffffffff84c7, 0x24
salc
add byte [eax], al
add dl, bh
retf 0xccfc
ret 0xc485
add dword [eax], eax
add ch, dl
out 0xd3, al
clc
mov dword [esp + 0x106], 0xfcc9fabb
mov dword [esp + 0x10a], 0xf0c9febc
mov dword [esp + 0x10e], 0xf4c4f2c7
mov dword [esp + 0x112], 0x89bf6c3
mov word [esp + 0x116], 0xa09
xor eax, eax
mov cl, 0x9e
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x76]
xor dl, cl
mov ch, 0xf7
sub ch, dl
mov byte [esp + eax + 0x76], ch
inc eax
dec cl
cmp eax, 0xa2
jne 0x424d90
lea edi, [esp + 0x876]
lea eax, [esp + 0x76]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x116]
lea edi, [esp + 0x916]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x76], 0x4ed44c36
inc esp
and al, 0x76
dec esp
aam 0x4e
mov dword [esp + 0x7a], 0x42d3402c
mov dword [esp + 0x7e], 0x46d644dc
mov dword [esp + 0x82], 0x7a1f78d8
mov dword [esp + 0x86], 0x7e117cef
out dx, eax
jl 0x424e13
jle 0x424dcb
test byte [edx + ecx*4], ah
add byte [eax], al
add byte [eax], al
jo 0x424e24
pop ss
jb 0x424dd6
test byte [esi + ecx*4], ah
add byte [eax], al
add byte [0xc776ec74], dl
test byte [edx + edx*4], ah
add byte [eax], al
add byte [eax + ebp*2], dl
adc al, 0x68
or al, 0x6a
out dx, eax
jl 0x424e13
jle 0x424dcb
test byte [edx + ecx*4], ah
add byte [eax], al
add byte [eax], al
jo 0x424e24
pop ss
pop ss
jb 0x424dd6
test byte [esi + ecx*4], ah
add byte [eax], al
add byte [0xc776ec74], dl
add byte [eax], al
adc eax, 0xc776ec74
test byte [edx + edx*4], ah
add byte [eax], al
add byte [eax + ebp*2], dl
adc al, 0x68
adc al, 0x68
or al, 0x6a
mov dword [esp + 0x96], 0x6e3c6c07
mov dword [esp + 0x9a], 0x623f603b
mov dword [esp + 0x9e], 0x66096433
mov dword [esp + 0xa2], 0x9a0c9818
mov dword [esp + 0xa6], 0x9e019c0f
mov dword [esp + 0xaa], 0x920e9000
mov dword [esp + 0xae], 0x96f99408
mov dword [esp + 0xb2], 0x8a1b88e7
mov dword [esp + 0xb6], 0x8eeb8c14
mov dword [esp + 0xba], 0x821d8016
mov dword [esp + 0xbe], 0x861684e6
mov dword [esp + 0xc2], 0xbac6b8eb
mov dword [esp + 0xc6], 0xbe29bc2e
mov dword [esp + 0xca], 0xb22eb023
mov dword [esp + 0xce], 0xb62eb42c
mov dword [esp + 0xd2], 0xaae0a8db
mov dword [esp + 0xd6], 0xaefaacf8
mov dword [esp + 0xda], 0xa2e2a0fa
mov dword [esp + 0xde], 0xa6e3a4e5
mov dword [esp + 0xe2], 0xda8dd8f7
mov dword [esp + 0xe6], 0xde8edc8a
mov dword [esp + 0xea], 0xd280d08e
mov dword [esp + 0xee], 0xd6b1d482
mov dword [esp + 0xf2], 0xca8bc884
mov dword [esp + 0xf6], 0xce85cc83
mov dword [esp + 0xfa], 0xc291c08e
mov dword [esp + 0xfe], 0xc694c493
mov dword [esp + 0x102], 0xfaadf897
mov dword [esp + 0x106], 0xfeaffcb9
mov dword [esp + 0x10a], 0xf2a7f0be
mov dword [esp + 0x10e], 0xf6a2f4a5
mov dword [esp + 0x112], 0xea85e8a1
mov word [esp + 0x116], 0xeceb
mov eax, 0xd3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x5d]
lea edx, [eax - 0x4c26e100]
mov esi, eax
and esi, ecx
or edx, ecx
xor edx, esi
mov ecx, edx
and ecx, 0x67
xor edx, 0x67
lea ecx, [edx + ecx*2]
inc cl
mov byte [esp + eax - 0x5d], cl
inc eax
cmp eax, 0x175
jne 0x424fa0
lea eax, [esp + 0xa5c]
lea edx, [esp + 0x76]
mov edi, eax
mov ecx, 0x28
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x116]
lea edi, [esp + 0xafc]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x76], 0x6fc76da1
mov dword [esp + 0x7a], 0x73c071d3
mov dword [esp + 0x7e], 0x77c575db
mov dword [esp + 0x82], 0x7bdc79d7
mov dword [esp + 0x86], 0x7fa27dc8
mov dword [esp + 0x8a], 0x43e4418f
mov dword [esp + 0x8e], 0x47ef45e2
mov dword [esp + 0x92], 0x4bef49eb
mov dword [esp + 0x96], 0x4fbf4d90
mov dword [esp + 0x9a], 0x53bc51a5
mov dword [esp + 0x9e], 0x578a55a4
mov dword [esp + 0xa2], 0x5bef5997
mov dword [esp + 0xa6], 0x5ff25de8
mov dword [esp + 0xaa], 0x238d218f
mov dword [esp + 0xae], 0x27fa258f
mov dword [esp + 0xb2], 0x2b9829f8
mov dword [esp + 0xb6], 0x2f882d83
mov dword [esp + 0xba], 0x339e3199
mov dword [esp + 0xbe], 0x37853591
mov dword [esp + 0xc2], 0x3bf539e4
mov dword [esp + 0xc6], 0x3f8a3d89
mov dword [esp + 0xca], 0x3ad01ac
mov dword [esp + 0xce], 0x7ad05ab
mov dword [esp + 0xd2], 0xbf309d4
mov dword [esp + 0xd6], 0xff90dff
mov dword [esp + 0xda], 0x13d111e5
mov dword [esp + 0xde], 0x17d015d2
mov dword [esp + 0xe2], 0x1bee19e8
mov dword [esp + 0xe6], 0x1fed1ded
mov dword [esp + 0xea], 0xe313e111
mov dword [esp + 0xee], 0xe742e515
mov dword [esp + 0xf2], 0xeb28e91b
mov dword [esp + 0xf6], 0xef16ed14
mov dword [esp + 0xfa], 0xf302f131
mov dword [esp + 0xfe], 0xf707f504
mov dword [esp + 0x102], 0xfb0ef908
mov dword [esp + 0x106], 0xff0cfd3e
mov dword [esp + 0x10a], 0xc334c101
mov dword [esp + 0x10e], 0xc731c532
mov dword [esp + 0x112], 0xcb16c93e
mov word [esp + 0x116], 0xcdcc
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xc
xor dl, byte [esp + ecx + 0x76]
add dl, 0xa0
mov byte [esp + ecx + 0x76], dl
inc ecx
cmp ecx, 0xa2
jne 0x4251c0
lea edx, [esp + 0x9ba]
lea ebp, [esp + 0x76]
mov esi, ebp
mov edi, edx
mov ecx, 0x28
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea esi, [esp + 0x116]
mov ecx, 1
lea edi, [esp + 0xa5a]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea ecx, [esp + 0x918]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
lea ecx, [esp + 0x876]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
xor ecx, ecx
xor eax, eax
cmp ecx, 0x14
setne al
jmp dword [eax*4 + 0x444398]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [ebp + 8]
push eax
mov ecx, esp
movzx eax, word [eax]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], 0x7065f49
lea edx, [ebp - 0x34]
mov esi, 0x19ff90db
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx]
mov ebx, edi
not ebx
and ebx, 0x3f
xor edi, 0x1c67a23f
or edi, ebx
mov eax, esi
xor eax, 0x3f
mov ebx, esi
and ebx, 0x1b
or ebx, edi
not edi
or edi, eax
and ebx, edi
add bl, 0xe0
mov byte [edx], bl
inc edx
dec esi
cmp esi, 0x19ff90d7
jne 0x43c5b0
xor eax, eax
mov edx, dword [ebp - 0x14]
cmp dword [ebp - 0x34], edx
setne al
mov eax, dword [eax*4 + 0x44683c]
mov esi, dword [case.0x43c622.2]
mov edx, esi
not edx
mov edi, edx
or edi, 0xe0697e61
add esi, edi
inc esi
and edx, 0x1f96819e
mov edi, edx
xor edi, esi
not esi
and esi, edx
add edi, edx
sub edi, esi
lea edx, [edi + eax]
inc edx
xor eax, eax
jmp edx