Function at 0x423f78
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0xa]
push ebx
mov ebx, ecx
and ecx, 0x8000
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 6]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 2]
movzx eax, word [eax]
and ebx, 0x7fff
sub ebx, 0x3fff
shl eax, 0x10
push edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
cmp ebx, 0xffffc001
jne 0x423fe4
xor ebx, ebx
xor eax, eax
cmp dword [ebp + eax*4 - 0x20], ebx
jne 0x423fd4
inc eax
cmp eax, 3
jl 0x423fc1
xor eax, eax
jmp 0x424479
xor eax, eax
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
pop eax
jmp 0x424479
and dword [ebp + 8], 0
push esi
lea esi, [ebp - 0x20]
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [str.5_v_]
dec esi
lea ecx, [esi + 1]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 0x8000001f
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
jns 0x42401c
dec edx
or edx, 0xffffffe0
inc edx
lea edi, [ebp + eax*4 - 0x20]
push 0x1f
xor eax, eax
pop ecx
sub ecx, edx
inc eax
shl eax, cl
mov dword [ebp - 8], ecx
test dword [edi], eax
je 0x4240c2
mov eax, dword [ebp - 0xc]
or edx, 0xffffffff
shl edx, cl
not edx
test dword [ebp + eax*4 - 0x20], edx
jmp 0x42404a
cmp dword [ebp + eax*4 - 0x20], 0
jne 0x424054
inc eax
cmp eax, 3
jl 0x424045
jmp 0x4240c2
mov eax, esi
cdq
push 0x1f
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 0x8000001f
jns 0x42406e
dec esi
or esi, 0xffffffe0
inc esi
and dword [ebp - 4], 0
sub ecx, esi
xor edx, edx
inc edx
shl edx, cl
lea ecx, [ebp + eax*4 - 0x20]
mov esi, dword [ecx]
add esi, edx
mov dword [ebp + 8], esi
mov esi, dword [ecx]
cmp dword [ebp + 8], esi
jb 0x4240ad
cmp dword [ebp + 8], edx
jmp 0x4240ab
test ecx, ecx
je 0x4240bf
and dword [ebp - 4], 0
lea ecx, [ebp + eax*4 - 0x20]
mov edx, dword [ecx]
lea esi, [edx + 1]
mov dword [ebp + 8], esi
cmp esi, edx
jb 0x4240ad
cmp esi, 1
jae 0x4240b4
mov dword [ebp - 4], 1
dec eax
mov edx, dword [ebp + 8]
mov dword [ecx], edx
mov ecx, dword [ebp - 4]
jns 0x424090
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 8]
or eax, 0xffffffff
shl eax, cl
and dword [edi], eax
mov eax, dword [ebp - 0xc]
inc eax
cmp eax, 3
jge 0x4240e2
push 3
pop ecx
lea edi, [ebp + eax*4 - 0x20]
sub ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
cmp dword [ebp + 8], 0
je 0x4240e9
inc ebx
mov eax, dword [0x48c2d4]
mov ecx, eax
sub ecx, dword [str.5_v_]
cmp ebx, ecx
jge 0x424107
xor eax, eax
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jmp 0x424314
cmp ebx, eax
jg 0x42431e
sub eax, dword [ebp - 0x10]
lea esi, [ebp - 0x2c]
mov ecx, eax
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
cdq
and edx, 0x1f
add eax, edx
movsd dword es:[edi], dword [esi]
mov edx, ecx
sar eax, 5
and edx, 0x8000001f
movsd dword es:[edi], dword [esi]
jns 0x424135
dec edx
or edx, 0xffffffe0
inc edx
and dword [ebp - 0xc], 0
and dword [ebp + 8], 0
or edi, 0xffffffff
mov ecx, edx
shl edi, cl
mov dword [ebp - 4], 0x20
sub dword [ebp - 4], edx
not edi
mov ebx, dword [ebp + 8]
lea ebx, [ebp + ebx*4 - 0x20]
mov esi, dword [ebx]
mov ecx, esi
and ecx, edi
mov dword [ebp - 0x10], ecx
mov ecx, edx
shr esi, cl
mov ecx, dword [ebp - 4]
or esi, dword [ebp - 0xc]
mov dword [ebx], esi
mov esi, dword [ebp - 0x10]
shl esi, cl
inc dword [ebp + 8]
cmp dword [ebp + 8], 3
mov dword [ebp - 0xc], esi
jl 0x424150
mov esi, eax
push 2
shl esi, 2
lea ecx, [ebp - 0x18]
pop edx
sub ecx, esi
cmp edx, eax
jl 0x424196
mov esi, dword [ecx]
mov dword [ebp + edx*4 - 0x20], esi
jmp 0x42419b
and dword [ebp + edx*4 - 0x20], 0
dec edx
sub ecx, 4
test edx, edx
jge 0x42418a
mov esi, dword [str.5_v_]
dec esi
lea ecx, [esi + 1]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
mov edx, ecx
and edx, 0x8000001f
mov dword [ebp - 0xc], eax
jns 0x4241ca
dec edx
or edx, 0xffffffe0
inc edx
push 0x1f
pop ecx
sub ecx, edx
xor edx, edx
inc edx
shl edx, cl
lea ebx, [ebp + eax*4 - 0x20]
mov dword [ebp - 0x10], ecx
test dword [ebx], edx
je 0x424265
or edx, 0xffffffff
shl edx, cl
not edx
test dword [ebp + eax*4 - 0x20], edx
jmp 0x4241f5
cmp dword [ebp + eax*4 - 0x20], 0
jne 0x4241ff
inc eax
cmp eax, 3
jl 0x4241f0
jmp 0x424265
mov eax, esi
cdq
push 0x1f
pop ecx
and edx, ecx
add eax, edx
sar eax, 5
and esi, 0x8000001f
jns 0x424219
dec esi
or esi, 0xffffffe0
inc esi
and dword [ebp + 8], 0
xor edx, edx
sub ecx, esi
inc edx
shl edx, cl
lea ecx, [ebp + eax*4 - 0x20]
mov esi, dword [ecx]
lea edi, [esi + edx]
cmp edi, esi
jb 0x424235
cmp edi, edx
jae 0x42422d
invalid
mov dl, byte [edx + 0x20c97cff]
fcomp qword [edi]
and ah, bl
test byte [edx + 0x78c9ff5], bh
add ah, byte [edx - 0x79fd6afe]
add byte [ebx + 0x37243f84], 0x32
pop ds
cld
push esp
mov dl, dl
sar dword [0x744edf49], cl
rol byte [esi - 0x74], 0x1d
push ds
fmul st(5), st(0)
je 0x424266
xchg edx, eax
invalid
push ds
idiv edx
cmp byte [0x5f01ff10], 0x76
cli
dec ebx
pop esp
lds ebx, [edi]
inc ebx
pop esp
push 0xb
add dword [edx + ebp*2 - 9], ebx
add dword [eax + eax*8], ebx
mov dl, byte [0x9ac618dc]
fild word [ecx]
fisttp word [edi]
salc
push esp
and edi, eax
sub byte [edx + 0x5d720782], cl
inc edx
out dx, eax
je 0x4242fc
push esp
rcr esp, 0xce
push esi
inc edx
jp 0x8a541eeb
xchg edx, eax
hlt
and byte [edx - 0x557703f9], 0xfb
adc edx, 0x54
call dword [ebp - 0x216e1fd]
mov word [edx + 0x112aa5e7], ss
xor al, 0x2f
das
jge 0x4242d6
test dh, cl
mov byte [ebx - 0x2515e066], ch
mov word [ebx - 0x4af0c06c], ds
xor byte [esi], 0xb
jp 0x4242e5
mov byte [0xec0395e8], al
xchg ebp, eax
add ebp, esp
aam 0xa7
call 0x24151a3
in al, 0x12
das
ret
imul eax, eax, 0x56
aam 0xc
add ecx, ebp
mov bh, 1
or al, 0xec
je 0x4244d2
xor edi, eax
sbb dl, byte es:[esi]
mov ds, word [esi]
add edi, ebx
movq qword [edx], mm1
push es
test dl, dh
loope 0x4244b4
inc edi
dec dword [edx]
sub bh, 0x7c
clc
lahf
jp 0x424493
mov dl, byte [edx + 0x3b547403]
xchg byte [esi + 0x141e5605], ah
or ebx, dword [esi + esi*8 - 0x21]
cmp eax, dword [esi + 0x1e5605a6]
adc al, 0xb
pop esp
neg bh
je 0x42448d
test byte [edx - 0x5fe9a9f3], dh
pop edx
push ss
int3
mov dl, 0xd
push esi
push ss
mov al, byte [0x74cc165a]
dec byte [edx + 0x33821384]
and esi, dword [esp + eax*2 - 0x29]
add byte [eax + 0x49], cl
aad 0x5c
je 0x4244a6
pop esi
out dx, al
inc dword [ecx + 0x4c760fdf]
fisttp word [edi]
jbe 0x424522
xor eax, dword [edi + esi*4 + 0x1f425607]
mov dl, byte [edi - 0x20490ff3]
mov ds, word [esi + edi*8]
mov al, byte [0x3480ff0f]
invalid
xchg esi, esp
push 5
fisttp word [edi]
jl 0x42458e
xlatb
pop gs
mov word [edx + 0xb7c72ef], gs
stosb byte es:[edi], al
pop edx
movsb byte es:[edi], byte [esi]
push esp
cmp cl, byte [edi]
ret
jge 0x4245bd
out dx, eax
xchg ebp, eax
push ds
in al, dx
iretd
stosb byte es:[edi], al
pop es
mov edi, 0x830c2782
xor al, 0x61
je 0x424561
inc esi
loopne 0x4245f6
cld
fdivp st(4)
ret
mov word [ebx - 0x1175e076], ss
or al, 0xd
mov byte [edx - 0x19cf8bf9], ch
or eax, 0x7407aa88
xor dh, ah
jp 0x4245c4
div dword [ebx - 3]
jae 0x4245cc
stosb byte es:[edi], al
or dword [esp + edx], esi
jp 0x42459e
stosd dword es:[edi], eax
and al, 0x7c
and ecx, dword fs:[edi]
jb 0x42462b
pop edx
out dx, eax
je 0x4245f2
push edx
jge 0x4245e3
mov byte [edx - 0x520c3bf9], ch
rep lodsd eax, dword [esi]
or bh, byte [edi + edi*8 - 0x22]
jl 0x4245e9
invalid
lcall 0xb70f, 0xdf01fef3
mov cl, byte [edx + 0x54107607]
fisttp word [edi]
mov bh, 0x8a
mov al, byte [edi]
jbe 0x42460e
push esp
inc edx
add edi, dword [eax + 0xe]
xchg byte [edx + 0x7425409], dh
adc byte [edi], 0xf0
sub al, 0xe1
dec byte [eax]
je 0x424656
sub ecx, dword [edi + 0x7c]
stc
fdiv qword [edx - 0xe]
imul ebx, esp, 0x56
jb 0x42469b
pop edx
out dx, eax
aam 0xc9
in al, dx
iretd
push cs
mov esp, 0xb7cd33a0
add dword [edi + eax*8 - 0x2c], edx
or al, 0x2f
int 0xb7
add esp, esp
salc
or byte [esp + ebp*8], 0xcf
jb 0x4246be
aas
movsb byte es:[edi], byte [esi]
push esp
stosb byte es:[edi], al
add bh, ch
add edi, ebx
xor al, 0x27
push cs
push eax
add ch, bh
add edi, ebx
and al, 0xba
int1
push edx
jp 0x424684
mov dl, byte [edi]
add byte [edx + 0x7c967ae1], 0xe3
ror byte [edi + 0x3ede54a4], 0xf9
fimul dword [esi + 0xfdf1e1d]
jg 0x424616
cmpsb byte [esi], byte es:[edi]
or dh, byte [ebp - 0x4210ea7e]
cmp byte [edx - 0x457d0005], 7
inc dword [edx - 0x348b0ff0]
je 0x424651
or al, 0xe8
cmp byte [ebx + 0x2f], al
inc dword [ecx]
fbld tbyte [esi]
stosb byte es:[edi], al
std
sub al, bl
je 0x4246f2
xlatb
and byte [ebx - 0x337bc064], 0x8a
adc dword [eax + esi], ebp
test ah, cl
mov dl, byte [ecx]
sub al, 0x30
mov byte [edx + 0xccb74ff], dl
loope 0x42471d
dec esp
and eax, dword [edx + ecx*4]
cmc
push esi
cmp al, 0x74
je 0x4246e2
fcomp qword [ecx]
invalid
sub esi, dword [ebx + 0x2c]
mov ch, byte [edi]
std
sar byte [ecx], 0xd
jb 0x424716
aaa
push ebp
aam 0xcf
in al, 0xdf
or dword [ecx], 0x54
jbe 0x42474b
dec edx
out dx, eax
adc al, 4
pop esp
add al, 0x5c
imul ebp, dword [edx - 0x1f], 0xffffffdf
inc ebp
jl 0x4246ca
fisttp dword [edx - 0x7bc783d3]
retf 0x1df1
push ds
xchg esi, eax
jl 0x4246d9
ror byte [edi + 0x740a27c0], 0xd0
pop esi
in eax, dx
loopne 0x424703
fisttp word [edi + 0x762b4476]
cli
dec ebx
pop esp
lds ebx, [edi]
inc ebx
mov ch, 0x10
cmpsb byte [esi], byte es:[edi]
sub dl, byte [0xc432d3c]
invalid
adc eax, 0xc432d3c
or al, 0xed
in eax, dx
jb 0x424777
pop edx
out dx, eax
jbe 0x42476a
dec esp
das
mov ch, ah
push cs
pop ebx
invalid
out dx, eax
push dword [edi + edx*8 + 0x4f]
je 0x424712
dec edi
jl 0x424737
fdiv qword [ebx + 0xc]
ljmp 0x10b5
or al, 0x3d
shl byte [edi], 0xa
jle 0x424739
ror byte [edi], 0xff
and dword [esi + 0x1182b10a], 0xba82b9ef
pop es
push dword [edx]
or eax, 0xc433124
in eax, dx
jb 0x4247b7
pop edx
out dx, eax
je 0x42479e
push edx
xor ebp, ecx
jmp 0xfbbf68af
cmp ah, byte [ecx]
jge 0x424770
sti
cmp ah, byte [0x9ac6f87c]
pop es
inc byte [ecx]
fisttp word [edi]
jbe 0x4247ba
jl 0x424771
invalid
push esp
inc edx
imul edx
ror byte [edx - 0x7d3e8aca], 0xb3
test byte [edi], bh
test dh, ch
mov word [ebp - 0x1b0133f2], gs
std
lea eax, [esp + ebx*2]
int1
invalid
fdivr qword [eax + eax]
inc esi
push esi
je 0x424774
xchg edi, eax
jbe 0x4247ca
mov dl, byte [edx + 0x20c97cff]
fcomp qword [edi]
and ah, bl
test byte [edx + 0x78c9ff5], bh
xchg edx, eax
invalid
mov word [edi], es
add ah, byte [edx - 0x79fd6afe]
mov byte [0x86029502], al
add byte [ebx + 0x37243f84], 0x32
pop ds
cld
push esp
mov dl, dl
sti
sar bl, cl
cmp eax, 0x744edf49
rol byte [esi - 0x74], 0x1d
push ds
fmul st(5), st(0)
je 0x4247aa
push ds
idiv edx
cmp byte [0x5f01ff10], 0x76
cli
dec ebx
pop esp
lds ebx, [edi]
inc ebx
pop esp
push 0xb
add dword [edx + ebp*2 - 9], ebx
add dword [eax + eax*8], ebx
mov dl, byte [0x9ac618dc]
fild word [ecx]
fisttp word [edi]
salc
push esp
and edi, eax
sub byte [edx + 0x5d720782], cl
inc edx
out dx, eax
je 0x424840
push esp
rcr esp, 0xce
push esi
inc edx
jp 0x8a54242f
xchg edx, eax
hlt
and byte [edx - 0x557703f9], 0xfb
adc edx, 0x54
call dword [ebp - 0x216e1fd]
mov word [edx + 0x112aa5e7], ss
xor al, 0x2f
das
jge 0x42481a
test dh, cl
mov byte [ebx - 0x2515e066], ch
mov word [ebx - 0x4af0c06c], ds
xor byte [esi], 0xb
jp 0x424829
mov byte [0xec0395e8], al
aam 0xa7
call 0x24156e7
in al, 0x12
pop ss
ret