Function at 0x820f37
Capabilities:
Encode data using xor

Disassembly:
call 0x7a0684
pop ecx
stc
imul ecx, dword [eax], 0xcc1a7efb
test eax, 0xa7e89828
invalid
call fcn.007a0547
adc dword [ebx], ebp
movsb byte es:[edi], byte [esi]
cmp bl, byte [ebp - 0x54]
adc bh, ch
ja 0x7a068f
mov dword [esp + 3], ebx
jmp 0x79f5f1
pop word [esp]
push ecx
mov word [esp + 2], bp
pushal
push esp
mov byte [esp + 0x26], bl
mov dword [esp + 0x18], ecx
push word [esp + 0x23]
jmp 0x7a080c
mov byte [esp + 5], dh
mov byte [esp + 0xa], al
jmp 0x7a07a4
mov byte [esp + 5], dh
mov byte [esp + 0xa], al
pop word [esp + 0xb]
lea esp, [esp + 2]
mov dword [esp + 8], 0x1ae41ca2
jmp 0x7a0758
call fcn.007afde9
jecxz 0x7a078f
hlt
lea esp, [esp + 8]
js 0x7a0722
jns 0x7a0722
mov byte [edx], al
nop
test dword [edx], 0x44d65dc1
and ebx, esi
imul ecx, dword [esi + 0x687bebee], 0x48
push esp
in eax, 0x1a
call fcn.007afde9
sti
pushal
not byte [ecx - 0x54622aa0]
invalid
and ch, byte [edi + 0x2a95a3f]
add esp, dword [edi]
and al, 0xa2
mov dh, 0x85
sbb dword [ecx - 0x4e59e418], ecx
mov esp, 0x448f66db
and al, 0xb
pop word [esp + 0xb]
lea esp, [esp + 2]
jmp 0x7a070e
lea esp, [esp + 0x2c]
push dword [esp + 0xb]
jle 0x7a06fd
jg 0x7a06cd
pop word [esp]
jmp 0x823ee1
pushal
pop word [esp + 0x18]
push word [esp + 0x17]
mov byte [esp + 0xc], ah
push word [esp + 0x1c]
pushfd
jmp 0x8203eb
pop dword [esp + 0x1b]
lea esp, [esp + 3]
mov byte [esp], bh
mov word [esp + 7], dx
mov word [esp + 3], bp
mov byte [esp + 9], ch
push dword [esp + 0x1d]
push bp
lea esp, [esp + 1]
jmp 0x82061d
lea esp, [esp + 0x24]
lea esp, [esp + 8]
jge 0x820ab4
jl 0x8208c8
lea esp, [esp + 3]
lea esp, [esp + 0xc]
jmp 0x820abc
mov eax, dword [esp + 0x30]
jmp 0x8208fb
mov word [esp + 3], ax
lea esp, [esp + 3]
lea esp, [esp + 8]
popal
lea ecx, [eax + 1]
jmp 0x820981
mov ecx, dword [esp + 0x14]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x38]
add esi, ebx
pushfd
lea esp, [esp + 4]
call fcn.007c721b
pushal
mov dword [esp + 0x1c], esi
pushal
mov byte [esp + 0x15], bh
mov word [esp + 0x19], dx
lea esp, [esp + 0x17]
push word [esp + 7]
mov dword [esp], eax
jmp 0x8208db
call 0x7bfebe
inc dword [eax]
jmp 0x82103d
mov ecx, 0xd7c0d80
not dl
setg al
mov bl, 0x7a
mov dword [esp + 0x18], esi
push esp
push dword [esp + 2]
jmp 0x820a96
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x8208ec
sub eax, ecx
pushal
jmp 0x82095a
call fcn.007c71ee
mov eax, esi
call fcn.007c71f3
call fcn.007bfee4
mov ecx, dword [eax]
inc ecx
imul ecx, ecx, 0xc
push ebx
pushal
not esi
mov dh, 0xb
jmp 0x820bac
mov word [esp], cx
lea esp, [esp + 8]
popal
lea esi, [esp + 0x38]
jmp 0x820a69
lea esp, [esp + 3]
lea esp, [esp + 0xc]
call fcn.007afde9
lea esp, [esp + 0xc]
jb 0x820dad
mov eax, dword [esp + 0x2c]
add eax, edi
cmp esi, eax
jae 0x820dad
jmp 0x820d51
mov word [esp], bp
lea esp, [esp + 1]
mov word [esp], cx
push word [esp]
mov byte [esp + 1], bh
push word [esp + 1]
mov dword [esp], edi
lea esp, [esp + 3]
lea esp, [esp + 8]
push ebx
mov ebx, edi
lea ebx, [ebx + 0x24]
mov ecx, dword [ebx]
pop ebx
lea eax, [ebx + eax*2]
movzx eax, word [eax + ecx]
mov ecx, dword [edi + 0x1c]
lea eax, [ecx + eax*4]
mov esi, dword [eax + ebx]
add esi, ebx
pushfd
cmp esi, edi
pushfd
mov byte [esp], bh
mov byte [esp], dh
mov byte [esp + 2], dh
mov dword [esp], ebx
push dword [esp]
pop word [esp + 2]
push word [esp + 4]
jmp 0x820ac1
mov dword [esp + 8], eax
push dword [esp + 2]
lea esp, [esp + 1]
lea esp, [esp + 0x10]
popal
lea ebx, [eax + ebx]
mov ecx, dword [ebx]
pop ebx
add ecx, dword [esp + 0x10]
push 0x10
lea edx, [esp + 0x94]
call fcn.007c756f
mov eax, dword [esp + 0x18]
mov cl, bh
lea ecx, [ebp + 0x4b]
mov cl, byte [esp]
mov ch, byte [esp]
lea ecx, [ecx + ebx]
lea ecx, [ecx*4]
mov ecx, dword [esp]
pushfd
jmp 0x820aea
lea eax, [0x3a5b40b7]
mov dh, byte [esp]
setno ah
lea edx, [0x57d04a31]
mov dword [esp + 0x10], ecx
pushal
lea esp, [esp + 0x11]
mov word [esp + 5], dx
mov byte [esp + 0xa], bh
pop word [esp + 0xa]
jmp 0x820b58
call 0x7bfeb4
mov eax, dword [eax + 0x10]
push esi
push esi
lea ecx, [esp + 0xa8]
push ecx
call eax
mov esi, eax
jmp 0x820cd7
cmp esi, ebx
jne 0x820df0
mov byte [esp + 0x26], 0x42
jmp 0x820dc9
push word [esp + 1]
lea esp, [esp + 0x28]
lea eax, [esp + 0xa0]
push eax
call dword [0x7a9f80]
pushal
xchg esi, edi
mov edi, ebp
sets dh
mov dl, byte [esp]
lea esi, [eax + ebx]
mov bh, ch
mov dword [esp + 4], eax
push ecx
lea esp, [esp]
push sp
mov word [esp + 2], di
mov byte [esp + 3], cl
push word [esp + 3]
lea esp, [esp + 8]
popal
test esi, esi
jne 0x820cd7
jmp 0x820ca7
mov eax, esi
call fcn.007c7526
mov dword [esp + 0x34], eax
test eax, eax
je 0x820dad
sub eax, esi
push eax
mov edx, esi
lea ecx, [esp + 0xa4]
mov dword [esp + 0x2c], eax
call fcn.007c74bc
mov eax, dword [esp + 0x2c]
mov byte [esp + eax + 0xa4], 0
sete cl
pushal
mov ecx, dword [esp + 0x20]
push esp
pop word [esp]
mov byte [esp], cl
mov word [esp], ax
mov byte [esp], bh
mov byte [esp], al
mov word [esp], ax
jmp 0x820cf5
mov eax, esi
jmp 0x820f2c
mov byte [esp + 0x25], 0x56
mov byte [esp + 0x24], 0x56
mov byte [esp + 0x23], 0x5e
mov byte [esp + 0x22], 0x14
mov byte [esp + 0x21], 0x5d
jmp 0x820e0c
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 1]
cmp byte [eax], 0x23
jne 0x820f7c
je 0x820f55
pop ds
xor al, 0x52
xchg ebp, eax
call 0x24c6d4d5
and byte [edi - 0x3a], cl
inc esp
and al, 0x1f
popal
mov byte [esp + 0x20], 0x4f
mov byte [esp + 0x1f], 0x61
mov byte [esp + 0x1e], 0x80
jmp 0x820ea7
mov byte [esp + 0x1d], 0x56
mov byte [esp + 0x1c], 0x5d
mov byte [esp + 0x1b], 0x54
jmp 0x820fa4
mov edx, dword [esp + 0x10]
inc dword [esp + 0x14]
add dword [esp + 0x10], 0x14
mov dword [ecx + edx + 0x10], eax
mov eax, dword [esp + 0x14]
jmp 0x82105e
call 0x7c7662
call 0x7bfe8e
add byte [esi - 0x75], dl
int1
mov edx, dword [esi]
pop esi
inc edx
imul edx, edx, 0xc
mov ecx, dword [ecx + edx]
jmp 0x820f06
add ecx, 2
push ecx
call fcn.007b177b
pop ecx
jmp 0x820f7c
push eax
push esi
call 0x7c7492
mov esi, eax
jmp 0x820dad
mov byte [esp + 0x1a], 0x50
mov byte [esp + 0x19], 0x5d
mov byte [esp + 0x18], 0x77
xor esi, esi
lea eax, [esp + esi + 0x18]
mov cl, byte [eax]
sub cl, 3
xor cl, 0x3f
inc esi
cmp esi, 0xf
mov byte [eax], cl
jl 0x820fb5
lea eax, [esp + 0x18]
pushfd
mov byte [esp + 2], bl
push word [esp]
push dword [esp + 5]
push word [esp]
mov word [esp + 4], ax
lea esp, [esp]
mov dword [esp + 2], esi
mov byte [esp + 7], ch
mov dword [esp + 8], eax
push esi
lea esp, [esp + 3]
push esp
mov dword [esp], ebp
mov dword [esp], eax
push dword [esp + 4]
pop dword [esp]
push dword [esp]
lea esp, [esp + 1]
lea esp, [esp + 0x10]
call dword [0x7a9f80]
mov esi, eax
jmp 0x820df0
call 0x7bff3b
push 0x7a9f28
call dword [eax + 0x98]
jmp 0x7a061a
cmp eax, dword [edi + 0x18]
jb 0x8208d5
jae 0x82093e
push 0x7f46dfd
mov edx, 0x4c25b523
mov edi, 0x54c6530e
xor ecx, esi
or byte [edx], bh
mov al, byte [0x10a05136]
dec esi
fisttp dword [ebx + 0x2e]
invalid
mov dword [esp], ebx
pop word [esp + 1]
jmp 0x823eeb
push word [esp]
mov dword [esp + 3], eax
jmp 0x823eb4
lea esp, [esp + 2]
mov dword [esp], 0x1ae415e5
call fcn.00823ebe
push dword [esp + 0x18]
lea esp, [esp + 1]
lea esp, [esp + 0x24]
lea esp, [esp + 3]
js 0x823fc8
jns 0x823f71
or byte [edi + 0x4b817217], al
dec ebx
retf
mov byte [esp], bh
pushal
jmp 0x823f9a
lea esp, [esp]
mov byte [esp], bh
jmp 0x823f53
jmp 0x823fa1
push word [esp + 0x15]
jmp 0x823fd7
lea esp, [esp + 3]
mov dword [esp + 0x20], 0x1ae3f774
call fcn.00823f7b
push es
xchg ebp, eax
add eax, 0x4b239f6c
jecxz 0x82402e
push ss
in eax, 0x55
push ecx
invalid
lea esp, [esp]
mov byte [esp], bh
mov byte [esp], bh
pushal
push word [esp + 0x15]
push dword [esp + 0xc]
mov word [esp + 0x13], bp
jg 0x823f79
lea esp, [esp + 3]
jmp 0x823fa5
dec esp
push ds
push word [esp + 5]
pop word [esp + 5]
lea esp, [esp + 4]
mov word [esp], bx
jmp 0x824444
lea esp, [esp + 0x28]
call fcn.007afde9
sub eax, 0xb04126b0
je 0x824073
movsb byte es:[edi], byte [esi]
cmp bl, byte [ebp - 0x54]
sub esp, eax
invalid
push word [esp]
push dword [esp + 1]
lea esp, [esp + 2]
jmp 0x8246cd
jae 0x82405d
lea esp, [esp + 0x28]
jmp 0x824061