Function at 0x43f4e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov dword [esp + 0x2c], 0x37ba39ca
mov dword [esp + 0x30], 0x33c635c8
mov dword [esp + 0x34], 0xcffc31c4
mov dword [esp + 0x38], 0xcb3ecd30
mov dword [esp + 0x3c], 0xc7c6c93c
mov word [esp + 0x40], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x2c
mov edx, ecx
xor edx, 0x76
add edx, esi
xor dl, byte [esp + ecx + 0x2c]
add dl, 0xb2
mov byte [esp + ecx + 0x2c], dl
inc ecx
add eax, 2
cmp ecx, 0x16
jne 0x43f520
lea eax, [esp + 0x2c]
push eax
call fcn.00442470
add esp, 4
mov dword [0x457bd0], eax
mov dword [esp + 0x28], 0xac3f48c6
test eax, eax
je 0x43f566
mov dword [esp + 0x28], 0x17936087
lea edi, [esp + 0x1e]
mov ebp, 0x9e54a0bf
xor eax, eax
cmp ebp, 0x17936087
setl al
mov eax, dword [eax*4 + 0x44d888]
mov ecx, 0x74a00516
xor ecx, dword [0x44d890]
add eax, ecx
inc eax
mov dword [esp + 0x24], ecx
jmp eax
push eax
cmp byte [eax + edi + 0x58], dl
cmp byte [eax + edi + 0x60], bl
cmp byte [eax + edi + 0x68], ah
cmp byte [eax + edi + 0x70], ch
cmp byte [eax + edi + 0x78], dh
cmp byte [eax + edi - 0x80], bh
cmp byte [eax + edi + 0x388c3888], al
nop
cmp byte [eax + edi + 0x389c3898], dl
xchg esp, eax
cmp byte [eax - 0x5fc763c8], bl
cmp byte [eax + edi + 0x38ac38a8], ah
mov al, 0x38
mov ah, 0x38
mov eax, 0xc038bc38
cmp ah, al
cmp al, cl
cmp ah, cl
cmp al, dl
cmp ah, dl
cmp al, bl
fdivr dword [eax]
fdivr qword [eax]
loopne 0x45c0b6
in al, 0x38
call 0xf07eacbd
cmp ah, dh
cmp al, bh
cmp ah, bh
cmp byte [eax], al
cmp dword [ecx + edi], eax
or byte [ecx], bh
or al, 0x39
adc byte [ecx], bh
adc al, 0x39
sbb byte [ecx], bh
sbb al, 0x39
and byte [ecx], bh
and al, 0x39
sub byte [ecx], bh
sub al, 0x39
xor byte [ecx], bh
xor al, 0x39
cmp byte [ecx], bh
cmp al, 0x39
inc eax
cmp dword [ecx + edi + 0x48], eax
cmp dword [ecx + edi + 0x50], ecx
cmp dword [ecx + edi + 0x58], edx
cmp dword [ecx + edi + 0x60], ebx
pushal
cmp dword [ecx + edi + 0x68], esp
cmp dword [ecx + edi + 0x70], ebp
cmp dword [ecx + edi + 0x78], esi
cmp dword [ecx + edi - 0x80], edi
cmp dword [ecx + edi + 0x398c3988], eax
nop
cmp dword [ecx + edi + 0x399c3998], edx
mov al, byte [0xa839a439]
movsb byte es:[edi], byte [esi]
cmp dword [eax - 0x4fc653c7], ebp
cmp dword [ecx + edi + 0x39bc39b8], esi
sar byte [ecx], 0xc4
cmp eax, ecx
cmp esp, ecx
cmp eax, edx
cmp esp, edx
cmp eax, ebx
cmp esp, ebx
cmp eax, esp
cmp esp, esp
cmp eax, ebp
cmp esp, ebp
cmp eax, esi
cmp esp, esi
cmp eax, edi
cmp esp, edi
cmp dword [eax], eax
cmp al, byte [edx + edi]
or byte [edx], bh
or al, 0x3a
adc byte [edx], bh
adc al, 0x3a
sbb byte [edx], bh
sbb al, 0x3a
and byte [edx], bh
and al, 0x3a
sub byte [edx], bh
sub al, 0x3a
xor byte [edx], bh
xor al, 0x3a
cmp byte [edx], bh
cmp al, 0x3a
inc eax
cmp al, byte [edx + edi + 0x48]
cmp cl, byte [edx + edi + 0x50]
cmp dl, byte [edx + edi + 0x58]
cmp bl, byte [edx + edi + 0x60]
cmp ah, byte [edx + edi + 0x68]
cmp ch, byte [edx + edi + 0x70]
cmp dh, byte [edx + edi + 0x78]
cmp bh, byte [edx + edi - 0x80]
cmp al, byte [edx + edi + 0x3a8c3a88]
nop
cmp dl, byte [edx + edi + 0x3a9c3a98]
mov al, byte [0xa83aa43a]
cmp ch, byte [edx + edi + 0x3ab43ab0]
mov eax, 0xc03abc3a
cmp al, ah
cmp cl, al
cmp cl, ah
cmp dl, al
cmp dl, ah
cmp bl, al
cmp bl, ah
cmp ah, al
cmp ah, ah
cmp ch, al
cmp ch, ah
cmp dh, al
cmp dh, ah
cmp bh, al
cmp bh, ah
cmp al, byte [eax]
cmp eax, dword [ebx + edi]
or byte [ebx], bh
or al, 0x3b
adc byte [ebx], bh
adc al, 0x3b
sbb byte [ebx], bh
sbb al, 0x3b
and byte [ebx], bh
and al, 0x3b
sub byte [ebx], bh
sub al, 0x3b
xor byte [ebx], bh
xor al, 0x3b
cmp byte [ebx], bh
cmp al, 0x3b
inc eax
cmp eax, dword [ebx + edi + 0x48]
cmp ecx, dword [ebx + edi + 0x50]
cmp edx, dword [ebx + edi + 0x58]
cmp ebx, dword [ebx + edi + 0x60]
cmp esp, dword [ebx + edi + 0x68]
cmp ebp, dword [ebx + edi + 0x70]
cmp esi, dword [ebx + edi + 0x78]
cmp edi, dword [ebx + edi - 0x80]
cmp eax, dword [ebx + edi + 0x3b8c3b88]
nop
cmp edx, dword [ebx + edi + 0x3b9c3b98]
mov al, byte [0xa83ba43b]
cmp ebp, dword [ebx + edi + 0x3bb43bb0]
mov al, 0x3b
mov ah, 0x3b
mov eax, 0xc03bbc3b
cmp eax, esp
cmp ecx, eax
cmp ecx, esp
cmp edx, eax
cmp edx, esp
cmp ebx, eax
cmp ebx, esp
cmp esp, eax
cmp esp, esp
cmp ebp, eax
cmp ebp, esp
cmp esi, eax
cmp esi, esp
hlt
cmp edi, eax
cmp edi, esp
cmp eax, dword [eax]
cmp al, 4
cmp al, 8
cmp al, 0xc
cmp al, 0x10
cmp al, 0x14
cmp al, 0x18
cmp al, 0x1c
cmp al, 0x20
cmp al, 0x24
cmp al, 0x28
cmp al, 0x2c
cmp al, 0x30
cmp al, 0x34
cmp al, 0x38
cmp byte [esp + edi], bh
cmp al, 0x40
cmp al, 0x44
cmp al, 0x48
cmp al, 0x4c
cmp al, 0x50
cmp al, 0x54
cmp al, 0x58
cmp al, 0x5c
cmp al, 0x60
cmp al, 0x64
cmp al, 0x68
cmp al, 0x6c
cmp al, 0x70
cmp al, 0x74
cmp al, 0x78
cmp al, 0x7c
jl 0x45c288
cmp byte [esp + eax*4], 0x3c
mov byte [esp + ecx*4], bh
cmp al, 0x90
cmp al, 0x94
cmp al, 0x98
cmp al, 0x9c
cmp al, 0xa0
cmp al, 0xa4
cmp al, 0xa8
cmp al, 0xac
cmp al, 0xb0
cmp al, 0xb4
cmp al, 0xb8
cmp al, 0xbc
cmp al, 0xc0
sar byte [esp + eax*8], 0x3c
enter 0xffffffffffffcc3c, 0x3c
sar byte [esp + edx*8], 1
cmp al, 0xd8
cmp al, 0xdc
cmp al, 0xe0
cmp al, 0xe4
cmp al, 0xe8
cmp al, 0xec
cmp al, 0xf0
cmp al, 0xf4
cmp al, 0xfc
cmp al, 0
cmp eax, 0x3d083d04
or al, 0x3d
adc byte [0x3d183d14], bh
sbb al, 0x3d
and byte [0x3d283d24], bh
sub al, 0x3d
xor byte [0x3d383d34], bh
xor al, 0x3d
cmp byte [0x3d403d3c], bh
inc esp
cmp eax, 0x3d4c3d48
push eax
cmp eax, 0x3d583d54
pop esp
cmp eax, 0x3d683d64
insb byte es:[edi], dx
cmp eax, 0x3d743d70
js 0x45c303
jl 0x45c305
cmp byte [0x3d883d84], 0x8c
cmp eax, 0x3d943d90
cwde
cmp eax, 0x3da03d9c
movsb byte es:[edi], byte [esi]
cmp eax, 0x3dac3da8
mov al, 0x3d
mov ah, 0x3d
mov eax, 0xc03dbc3d
sar byte [0x3dc83dc4], 0xcc
add al, 0x3e
or byte [esi], bh
or al, 0x3e
adc byte [esi], bh
adc al, 0x3e
sbb byte [esi], bh
sbb al, 0x3e
and byte [esi], bh
and al, 0x3e
sub byte [esi], bh
sub al, 0x3e
xor byte [esi], bh
xor al, 0x3e
cmp byte [esi], bh
cmp al, 0x3e
inc eax
inc esp
dec eax
dec esp
push eax
push esp
pop eax
pop esp
pushal
push 0x703e6c3e
je 0x45c37e
js 0x45c380
jl 0x45c382
cmp byte [esi], 0x84
mov byte ds:[esi], bh
invalid
hlt
clc
cld
cld
add byte ds:[edi], bh
add al, 0x3f
or byte [edi], bh
or al, 0x3f
adc byte [edi], bh
adc al, 0x3f
sbb byte [edi], bh
sbb al, 0x3f
and byte [edi], bh
and al, 0x3f
sub byte [edi], bh
sub al, 0x3f
xor byte [edi], bh
xor al, 0x3f
cmp byte [edi], bh
cmp al, 0x3f
inc eax
aas
inc esp
aas
dec eax
aas
dec esp
aas
push eax
aas
push esp
aas
pop eax
aas
pop esp
aas
pushal
aas
aas
push 0x703f6c3f
aas
je 0x45c3ff
js 0x45c401
jl 0x45c403
cmp byte [edi], 0x84
aas
mov byte [edi], bh
invalid
aas
clc
aas
cld
aas
add al, dl
add al, 0
mov eax, 5
xor byte [eax + esi], al
or byte [eax], dh
or al, 0x30
adc byte [eax], dh
adc al, 0x30
sbb byte [eax], dh
sbb al, 0x30
and byte [eax], dh
and al, 0x30
sub byte [eax], dh
sub al, 0x30
xor byte [eax], dh
xor al, 0x30
cmp byte [eax], dh
cmp al, 0x30
inc eax
xor byte [eax + esi + 0x48], al
xor byte [eax + esi + 0x50], cl
dec esp
invalid
push eax
xor byte [eax + esi + 0x58], dl
xor byte [eax + esi + 0x60], bl
xor byte [eax + esi + 0x68], ah
xor byte [eax + esi + 0x70], ch
xor byte [eax + esi + 0x78], dh
xor byte [eax + esi - 0x80], bh
xor byte [eax + esi + 0x308c3088], al
nop
xor byte [eax + esi + 0x30a0309c], dl
enter 0xffffffffffffcc30, 0x30
aam 0x30
fdiv dword [eax]
loopne 0x45c496
in al, 0x30
hlt
int3
adc byte [esi], dh
adc al, 0x36
sbb byte [esi], dh
sbb al, 0x36
and byte [esi], dh
and al, 0x36
sub al, 0x36
xor byte [esi], dh
xor al, 0x36
cmp byte [esi], dh
cmp al, 0x36
inc eax
inc esp
dec eax
dec esp
push eax
push esp
pop esp
pop esp
pushal
insb byte es:[edi], dx
je 0x45c6b6
js 0x45c6b8
jl case.0x43a504.217
xor byte [esi], 0x84
mov byte ss:[esi], dh
invalid
in al, 0x36
call 0xf07cb2f3
hlt
in al, dx
invalid