Function at 0x484b30
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x8c0b04]
sub esp, 0x60
push ebp
xor ebp, ebp
cmp eax, ebp
jne 0x484b4c
mov eax, dword [0x8c0bbc]
push eax
push 0x3c23d70a
jmp 0x484b56
push 0x44fa0000
push 0x41a00000
mov eax, dword [0x8ebfd8]
call fcn.00412840
cmp dword [0x8ccac4], ebp
jne 0x4852ca
mov eax, dword [0x728024]
or edx, 0xffffffff
cmp eax, edx
jne 0x4852ca
mov eax, dword [0x8c0b04]
sub eax, ebp
mov dword [0x728024], edx
je 0x484bb7
dec eax
jne 0x484be7
push ebp
push ebp
push ebp
lea eax, [esp + 0x28]
call fcn.004dc670
mov ecx, dword [0x8ccac8]
add esp, 0xc
push ecx
mov ecx, dword [0x8c0c1c]
push edx
push 0x64
mov edx, eax
push edx
push 0xa5
jmp 0x484be0
push ebp
push ebp
push 0x3fc90fdb
lea eax, [esp + 0x28]
call fcn.004dc670
mov eax, dword [0x8ccac8]
add esp, 0xc
push eax
push edx
push 0x64
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [0x8c0c20]
push 0x5f
push ebp
push ebp
call fcn.004bc350
push ebx
push esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x10], ebp
push edi
jmp 0x484c00
mov eax, dword [ebp + 0x8c10c8]
test eax, eax
je 0x485112
cmp eax, 1
jne 0x484d02
mov eax, dword [ebp + 0x8c0e84]
cmp eax, 0xb4
jle 0x484c2f
add eax, 0xfffffe98
mov dword [ebp + 0x8c0e84], eax
mov eax, dword [ebp + 0x8c10d4]
cmp eax, 0xb4
jle 0x484c47
add eax, 0xfffffe98
mov dword [ebp + 0x8c10d4], eax
mov edx, dword [0x8ccad4]
mov esi, dword [ebp + 0x8c10cc]
mov ecx, dword [ebp + 0x8c0e7c]
push 0
push 3
push 1
push edx
mov eax, esi
call fcn.004893a0
mov ecx, dword [ebp + 0x8c0e80]
add esi, eax
push 0
mov dword [0x8ccad4], eax
mov eax, dword [0x8ccad8]
push 3
mov dword [ebp + 0x8c10cc], esi
mov esi, dword [ebp + 0x8c10d0]
push 1
push eax
mov eax, esi
call fcn.004893a0
mov ecx, dword [0x8ccadc]
push 0
add esi, eax
push 3
mov dword [ebp + 0x8c10d0], esi
mov esi, dword [ebp + 0x8c10d8]
push 1
mov dword [0x8ccad8], eax
push ecx
mov ecx, dword [ebp + 0x8c0e88]
mov eax, esi
call fcn.004893a0
mov edx, dword [0x8ccae0]
mov ecx, dword [ebp + 0x8c0e84]
add esi, eax
push 0
push 5
mov dword [ebp + 0x8c10d8], esi
mov esi, dword [ebp + 0x8c10d4]
mov dword [0x8ccadc], eax
push 1
push edx
mov eax, esi
call fcn.004893a0
add esp, 0x40
add esi, eax
mov dword [0x8ccae0], eax
mov dword [ebp + 0x8c10d4], esi
jmp 0x485112
mov eax, dword [0x8c0bb4]
test eax, eax
je 0x484e29
mov ebx, dword [ebp + 0x8c10cc]
mov esi, dword [ebp + 0x8c0e7c]
mov eax, dword [ebp + 0x8c10d0]
mov ecx, dword [ebp + 0x8c0e80]
sub esi, ebx
sub ecx, eax
test esi, esi
mov eax, ecx
mov edx, esi
jge 0x484d35
neg edx
test ecx, ecx
jge 0x484d3d
mov eax, ecx
neg eax
cmp edx, eax
jle 0x484d46
lea eax, [eax + edx*2]
jmp 0x484d49
lea eax, [edx + eax*2]
cdq
sub eax, edx
sar eax, 1
cmp eax, 3
jle 0x484e03
mov eax, ecx
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jne 0x484d74
mov eax, ecx
call fcn.004dca00
jmp 0x484d91
jle 0x484d86
xor eax, eax
test esi, esi
setle al
lea eax, [eax*4 + 2]
jmp 0x484d91
xor eax, eax
test ecx, ecx
setg al
dec eax
and eax, 4
mov edx, dword [ebp + 0x8c10d4]
mov ecx, eax
imul ecx, ecx, 0x2d
cmp edx, ecx
je 0x484dc6
mov edx, dword [ebp + 0x8c10d0]
mov dword [ebp + 0x8c10d4], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0x8c10dc], 0
mov dword [ecx + 0x8c0b60], ebx
mov dword [ecx + 0x8c0b08], edx
mov ecx, dword [eax*4 + 0x7272f0]
lea edx, [ebx + ecx*2]
mov ecx, dword [eax*4 + 0x727350]
mov eax, dword [ebp + 0x8c10d0]
mov dword [ebp + 0x8c10cc], edx
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x10]
or eax, 1
mov dword [ebp + 0x8c10d0], edx
mov dword [ebp + 0x8c10d8], 4
mov dword [esp + 0x10], eax
jmp 0x484e29
mov ecx, dword [ebp + 0x8c0e78]
cmp ecx, 0xffffffff
lea eax, [ebp + 0x8c0e78]
je 0x484e23
mov ecx, 7
mov esi, eax
lea edi, [ebp + 0x8c10c8]
rep movsd dword es:[edi], dword [esi]
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0x8c10c8]
mov ecx, eax
shl ecx, 6
test byte [ecx + 0x727890], 1
je 0x484ea7
cmp dword [ebp + 0x8c10d8], 4
jne 0x484ea7
mov edx, dword [ebp + 0x8c10d4]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x8c0b08]
mov edi, dword [ecx + 0x8c0b60]
mov ebx, dword [eax*4 + 0x8c0bc8]
add edx, 0xb4
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
push 0
push 0
fmul qword [0x715680]
call fcn.005f275c
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push ecx
lea eax, [esp + 0x34]
fmul qword [0x715728]
fstp dword [esp]
call fcn.004dc670
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x64
push eax
jmp 0x484f04
mov ecx, dword [ebp + 0x8c10d4]
mov esi, dword [ebp + 0x8c10d0]
mov edi, dword [ebp + 0x8c10cc]
mov ebx, dword [eax*4 + 0x8c0bc8]
add ecx, 0xb4
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
push 0
push 0
fmul qword [0x715680]
call fcn.005f275c
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
push ecx
lea eax, [esp + 0x58]
fmul qword [0x715728]
fstp dword [esp]
call fcn.004dc670
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x64
mov edx, eax
push edx
push 0
push esi
mov ecx, ebx
push edi
call fcn.004bc350
mov ecx, dword [ebp + 0x8c10c8]
mov esi, dword [ebp + 0x8c10d8]
mov dword [esp + 0x18], eax
mov eax, ecx
mov ecx, dword [ecx*4 + 0x8c0bc8]
shl eax, 4
add eax, esi
mov eax, dword [eax*4 + 0x727878]
cmp eax, 0xffffffff
mov dword [esp + 0x20], 0
jne 0x484f48
fld dword [ecx + 0x2c]
xor ebx, ebx
jmp 0x484f60
call fcn.004bc7a0
xor ebx, ebx
cmp eax, ebx
je 0x484f58
fld dword [eax + 0xc]
jmp 0x484f60
fld dword [esp + 0x20]
lea esp, [esp]
fmul dword [0x715698]
call fcn.005f275c
mov esi, eax
cmp esi, ebx
jne 0x484fce
mov ecx, dword [ebp + 0x8c10c8]
mov esi, dword [ebp + 0x8c10d8]
mov eax, ecx
mov edx, ecx
mov ecx, dword [ecx*4 + 0x8c0bc8]
shl eax, 4
shl edx, 6
add eax, esi
mov dword [edx + 0x727878], ebx
mov eax, dword [eax*4 + 0x727878]
cmp eax, 0xffffffff
mov dword [esp + 0x24], 0
jne 0x484faf
fld dword [ecx + 0x2c]
jmp 0x484fc1
call fcn.004bc7a0
cmp eax, ebx
je 0x484fbd
fld dword [eax + 0xc]
jmp 0x484fc1
fld dword [esp + 0x24]
fmul dword [0x715698]
call fcn.005f275c
mov esi, eax
cmp dword [ebp + 0x8c10d8], 4
je 0x484ffe
cmp dword [ebp + 0x8c10dc], ebx
jne 0x484ffe
call dword [sym.imp.MSVCR71.dll_rand]
cdq
mov ecx, 0x1e
idiv ecx
test edx, edx
je 0x484ffe
cmp dword [0x8c0b04], 1
jne 0x4850a6
cmp esi, ebx
je 0x4850a6
mov ecx, dword [ebp + 0x8c10dc]
add ecx, 0x1e
mov eax, ecx
cmp eax, esi
mov dword [ebp + 0x8c10dc], ecx
jl 0x4850a6
cmp dword [0x8c0b04], 1
mov dword [ebp + 0x8c10dc], ebx
jne 0x485088
mov ecx, dword [ebp + 0x8c10c8]
mov edi, dword [ebp + 0x8c10d8]
mov edx, ecx
shl edx, 4
add edx, edi
lea eax, [edx*4 + 0x727878]
mov edx, dword [eax]
cmp edx, ebx
je 0x485088
test dl, 1
jne 0x485082
mov ecx, dword [ecx*4 + 0x8c0bc8]
inc edx
mov dword [eax], edx
mov eax, edx
xor edi, edi
call fcn.004bc830
test eax, eax
jne 0x485082
mov eax, dword [ebp + 0x8c10c8]
mov ecx, dword [ebp + 0x8c10d8]
shl eax, 4
add eax, ecx
mov dword [eax*4 + 0x727878], ebx
mov dword [ebp + 0x8c10dc], ebx
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 0x8c10cc]
mov eax, dword [ebp + 0x8c10d0]
mov dword [ecx + 0x8c0b60], edx
mov dword [ecx + 0x8c0b08], eax
jmp 0x4850aa
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x8c10d8]
cmp eax, 4
je 0x4850cd
mov edx, dword [ebp + 0x8c10cc]
mov dword [ecx + 0x8c0b60], edx
mov edx, dword [ebp + 0x8c10d0]
mov dword [ecx + 0x8c0b08], edx
mov edx, dword [ebp + 0x8c10c8]
mov ecx, dword [ebp + 0x8c10dc]
shl edx, 4
add edx, eax
mov eax, dword [edx*4 + 0x727878]
push ecx
mov ecx, dword [esp + 0x1c]
push eax
call fcn.004bc4e0
mov ecx, dword [ebp + 0x8c10c8]
mov edx, dword [ebp + 0x8c10d8]
shl ecx, 4
add ecx, edx
cmp dword [ecx*4 + 0x727878], ebx
je 0x485112
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x14]
add eax, 4
add ebp, 0x1c
cmp eax, 0x54
mov dword [esp + 0x14], eax
jl 0x484c00
test byte [esp + 0x10], 1
mov eax, dword [esp + 0x10]
je 0x485139
or eax, 2
jmp 0x48513c
and eax, 0xfffffffd
fld dword [0x8ccc44]
mov dword [esp + 0x10], eax
fcomp dword [0x715554]
fnstsw ax
test ah, 5
jp 0x485165
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x485165
mov dword [0x8ccc44], 0
fild dword [0x8c10d4]
fmul qword [0x715680]
call fcn.005f275c
mov ebp, dword [0x8c10dc]
mov esi, eax
mov eax, 6
sub eax, ebp
lea edi, [eax + eax*4]
mov eax, dword [0x8c10d8]
mov ecx, 0x471c71c7
shl edi, 1
call fcn.004dcac0
mov ecx, esi
mov ebx, eax
call fcn.004dcac0
mov ebp, dword [0x8c10cc]
sub ebp, eax
lea ecx, [esi + 0x40000000]
mov eax, ebx
call fcn.004dcac0
mov ebx, dword [0x8c10d0]
sub ebx, eax
mov eax, dword [0x8c10d8]
mov ecx, eax
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
mov dword [esp + 0x14], 1
jle 0x485202
lea ebx, [ebx]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sar eax, 1
mov ecx, eax
lea eax, [edx + edx]
mov dword [esp + 0x14], eax
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
jg 0x4851e0
push 0x2aaaaaaa
push 0
push 0x71c71c7
mov edx, ecx
push esi
mov ecx, 0x71c71c7
call fcn.00495330
imul eax, dword [esp + 0x24]
add eax, edi
push eax
push ebx
push ebp
call fcn.004ad540
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
add esp, 0x1c
test eax, eax
jne 0x485268
mov eax, 0x8c0a80
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x485243
sub eax, edx
mov dword [esp + 0x24], eax
je 0x485268
or eax, 0xffffffff
call fcn.00484110
mov byte [0x8c0a80], 0
mov edi, 1
jmp 0x48529d
mov edi, 1
lea ecx, [ecx]
test byte [0x8ef61c], 1
jne 0x485286
or dword [0x8ef61c], edi
call esi
mov dword [0x8ef618], eax
call esi
mov ebx, dword [0x8ef618]
mov edx, dword [0x8ccac8]
sub eax, ebx
sub eax, edx
cmp eax, 0x1e
jb 0x485270
test byte [0x8ef61c], 1
jne 0x4852b3
or dword [0x8ef61c], edi
call esi
mov dword [0x8ef618], eax
call esi
mov ecx, dword [0x8ef618]
pop edi
pop esi
sub eax, ecx
pop ebx
mov dword [0x8ccac8], eax
pop ebp
add esp, 0x60
ret
call fcn.00484250
pop ebp
add esp, 0x60
ret