Function at 0x1003f8e0
Capabilities:
Encode data using xor

Disassembly:
xor eax, 0x5131
jb 0x1004ea9a
sub eax, 0xe9
and eax, 0xffff
jb 0x1004eab1
mov ecx, ecx
jmp fcn.10039bc9
mov eax, dword [esi + 4]
mov ebx, dword [esi + 8]
movsx eax, word [eax]
jne 0x100432e6
shr cx, 0x40
je 0x1003d47e
mov esp, dword [ebx + edi*8 + 0x5e62840f]
add byte [eax], al
je 0x100432e6
xor al, 0x59
call fcn.1002aab6
test dl, 0xdb
add esp, 0xc
mov al, al
pop edi
pop esi
shl ah, 0x20
mov esp, ebp
pop ebp
ret
lea esp, [esp + 4]
or eax, ecx
jb 0x100560c9
xor ax, word [esi + 6]
jb 0x100560d2
clc
xor eax, 0x8450
jb 0x1004da41
sub eax, 0x11
and si, si
jno 0x100215df
jo 0x1003f914
lcall 0xfe1c, 0xc5800f82
invalid
jo 0x100215df
fcomp dword [ebx]
lea esi, [esi + 0xc]
mov dword [ebp + ebx], eax
shr di, 0x40
jmp dword [esi]
sub bh, bl
mov ah, ah
ja 0x1005e656
jbe 0x1004eaab
and cl, al
inc ecx
adc byte [edx - 0x45a79f1], dl
add byte [eax], al
jbe 0x1005e656
or byte [eax + 0x424648d], 0xf
mov byte [ecx + 0x79fffee9], ch
add eax, 0x7a33aa47
lodsd eax, dword [esi]
lea esp, [esp + 4]
js 0x1003d466
jns 0x1004eac4
inc edi
stosb byte es:[edi], al
xor edi, dword [edx - 0x53]
jns 0x1003d466
fsubr dword [eax]
imul ebp, dword [0x4c1003], 0
add byte [ebp + 0x48100250], bl
add byte [eax], al
add byte [eax + eax], cl
add byte [ecx], dl
sub al, 2
adc byte [ecx], bh
add byte [eax], al
add byte [ecx], bh
add byte [eax], al
add byte [edi + 0x81002d5], al
add byte [eax], al
add byte [eax + eax], bh
add byte [eax], al
adc dword [edx + eax], ebp
adc byte [ecx], bh
add byte [eax], al
add byte [ecx], bh
add byte [eax], al
add byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], bh
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
and byte [eax - 0x227deffb], ch
add edx, dword [eax]
jo 0x1004eab3
add edx, dword [eax]
add dword [eax], eax
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
stosd dword es:[edi], eax
add eax, 0x4ec3010
adc byte [0x411002f7], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add eax, 0x401002f7
add byte [eax], al
add byte [ecx], al
add byte [eax], al
jmp 0x1004eb79
add byte [eax], al
and dword [eax], eax
add byte [eax + eax + 0x10000000], bh
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edx - 0x2f], dh
add al, 0x10
sbb al, 0x4a
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add cl, ch
insb byte es:[edi], dx
add al, 0x10
fcom dword [esp + eax]
adc byte [edi - 0x3feffd5b], ah
or al, 4
adc byte [eax], dl
add byte [eax], al
push eax
add byte [eax], al
add ch, bh
stosb byte es:[edi], al
add eax, 0x849210
add byte [eax], bh
add byte [eax], al
add al, bl
adc al, 4
adc byte [ebx], bl
jg 0x1004ebe0
adc cl, bl
syscall
adc al, bl
dec esi
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
xchg esp, eax
mov ebx, 0xffff1002
add eax, 0x4ed810
add byte [eax], bh
add byte [eax], al
add byte [ebx + edi*4 - 0xeffe], dl
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
fcom dword [esp + eax]
adc dh, cl
mov al, byte [edx]
adc byte [ebp + 0x4c10052a], ah
add byte [eax], al
add byte [ecx + ebp + 0x401005], dl
add byte [eax], al
cmp eax, 0x11000000
sti
add al, 0x10
sbb byte [ebp + 5], dh
test dword [edx], 0x4410
add byte [ecx], al
add byte [eax], al
add eax, 0x411002f7
add byte [eax], al
add byte [eax + eax], al
add byte [eax - 0x7b], dh
add edx, dword [eax]
add al, byte [eax]
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
stosd dword es:[edi], eax
add eax, 0x3ed4510
adc bl, ch
pop ds
add eax, 0x4ec5010
adc byte [eax + 0x1cc2a20f], dl
dec edx
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [eax + eax + 0x10000000], bh
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add byte [edx - 0x2f], dh
add al, 0x10
pushfd
mov esi, 0xd75b1005
dec esi
cmp byte ds:[eax], al
add byte [eax], al
sbb al, 0x4a
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [eax], al
add byte [eax], bh
add byte [eax], al
add cl, ch
insb byte es:[edi], dx
add al, 0x10
fcom dword [esp + eax]
adc byte [esi + eax*8], ah
add edx, dword [eax]
push esi
mov al, byte [0xece31003]
add edx, dword [eax]
fst dword [edi - 0x75]
inc esp
add eax, 0x1d6cf700
add byte [ebp + 0x44890c76], cl
sbb eax, 0x87ca8700
sar edi, 1
push ebp
mov cl, byte [edi]
test dword [edi], edi
cli
add byte [eax], al
je 0x1004ecd7
stosb byte es:[edi], al
test byte [edi], cl
test byte [0xd80000fa], dh
add dword [edi + 0x81002d5], 0
je 0x1005e712
fadd dword [ebx + 0x1002d587]
or byte [eax], al
add byte [eax], al
cmp al, 0
add byte [eax], al
adc dword [edx + eax], ebp
adc byte [ecx], bh
add byte [eax], al
add byte [ecx], bh
add byte [eax], al
add byte [edx + ecx*2], bl
add dl, byte [eax]
add byte [ecx], ah
cmp byte [eax + eax], 0
add byte [eax], al
and dword [eax], eax
add byte [edx], bh
adc al, byte [eax]
add byte [eax], al
inc edx
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
and byte [eax - 0x7a8feffb], ch
add edx, dword [eax]
add dword [eax], eax
add byte [eax], al
cmp byte [eax], al
add byte [eax], al
cmp al, 4
adc byte [ebp - 0x76effca1], bl
stosb byte es:[edi], al
add eax, 0x4ed3a10
adc byte [ecx + edi*8 + 0x5aa8977], bh
adc byte [ebp + 0x3510035f], bl
jno 0x1004ecd0
pop ebp
dec esp
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
lea esi, [esi + 0xc]
or dword [ebx + edx], eax
jb 0x1002e8f3
jmp dword [esi]
xchg ah, bh
xchg bh, ah
push 0x1003bf69
ret
jno 0x1004d776
jo 0x1005e720
mov dl, 0xd2
cmp eax, 0xf9b89ec
adc byte [eax - 0x10], 0xfe
invalid
jo 0x1004d776
invalid