Function at 0x461f10
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov edi, 0x66e618
push ebp
add esp, 0xffffffe4
mov eax, dword [edi + 4]
mov ebx, dword [eax - 8]
mov esi, dword [eax - 4]
test byte [ebx], 0x1a
je 0x461fe7
test byte [esi], 0x3a
jne 0x461f47
test byte [esi + 1], 4
je 0x461fe7
cmp dword [esi + 8], 1
jne 0x461fe7
push ebx
call fcn.0046d114
pop ecx
push edx
push eax
push esi
call fcn.0046d114
pop ecx
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
cmp dword [ebx + 0xc], 0xffffffff
jne 0x461f78
cmp dword [ebx + 8], 0xc4653601
jb 0x461f8d
jmp 0x461f7a
jl 0x461f8d
cmp dword [ebx + 0xc], 2
jne 0x461f8b
cmp dword [ebx + 8], 0x540be3ff
jbe 0x461f94
jmp 0x461f8d
jle 0x461f94
mov eax, 0x14
jmp 0x461f99
mov eax, 0xa
mov dword [ebx + 0x10], eax
mov dword [ebx], 8
sub dword [edi + 4], 4
mov edx, dword [edi + 4]
cmp edx, dword [edi]
jae 0x461fc0
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x461fd9
push eax
call fcn.0046d450
pop ecx
jmp 0x462411
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
jmp 0x462411
test byte [ebx + 1], 4
je 0x4620e2
test byte [esi + 1], 4
je 0x4620e2
mov edx, dword [ebx + 8]
mov dword [esp], edx
mov ecx, dword [esi + 8]
mov dword [esp + 4], ecx
cmp dword [esp], 0
je 0x46209d
cmp dword [esp + 4], 0
je 0x46209d
mov eax, dword [ebx + 0x10]
mov dword [esp + 8], eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0xc], edx
test byte [ebx + 1], 4
je 0x46203f
cmp dword [ebx + 0xc], 0
je 0x46203f
mov ecx, dword [ebx + 0x14]
cmp dword [ecx], 1
je 0x462075
mov eax, dword [esp]
inc eax
push eax
call fcn.0048a490
pop ecx
mov dword [esp + 8], eax
mov edx, dword [esp]
push edx
mov ecx, dword [ebx + 0x10]
push ecx
mov eax, dword [esp + 0x10]
push eax
call fcn.004c1fd0
add esp, 0xc
mov edx, dword [esp]
push edx
mov ecx, dword [esp + 0xc]
push ecx
push ebx
call fcn.0046d8a8
add esp, 0xc
xor edx, edx
mov ecx, dword [esp + 8]
add ecx, edx
mov eax, edx
cmp edx, dword [esp]
jae 0x46209d
mov ebx, dword [esp + 0xc]
mov bl, byte [ebx + eax]
xor byte [ecx], bl
inc eax
cmp eax, dword [esp + 4]
jne 0x462096
xor eax, eax
inc edx
inc ecx
cmp edx, dword [esp]
jb 0x462084
sub dword [edi + 4], 4
mov edx, dword [edi + 4]
cmp edx, dword [edi]
jae 0x4620bb
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x4620d4
push eax
call fcn.0046d450
pop ecx
jmp 0x462411
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
jmp 0x462411
test byte [ebx + 1], 4
je 0x4621b0
test byte [esi], 0x3a
jne 0x462105
test byte [esi + 1], 4
je 0x4621b0
cmp dword [esi + 8], 1
jne 0x4621b0
mov ebp, dword [ebx + 8]
test ebp, ebp
je 0x46216b
push esi
call fcn.0046bb00
pop ecx
mov byte [esp + 0x10], al
test byte [ebx + 1], 4
mov esi, dword [ebx + 0x10]
je 0x46212e
cmp dword [ebx + 0xc], 0
je 0x46212e
mov eax, dword [ebx + 0x14]
cmp dword [eax], 1
je 0x462156
lea edx, [ebp + 1]
push edx
call fcn.0048a490
mov esi, eax
lea eax, [ebp + 1]
pop ecx
push eax
mov edx, dword [ebx + 0x10]
push edx
push esi
call fcn.004c1fd0
add esp, 0xc
push ebp
push esi
push ebx
call fcn.0046d8a8
add esp, 0xc
lea eax, [esi + ebp]
jmp 0x462161
mov dl, byte [esp + 0x10]
xor byte [eax], dl
dec eax
mov ecx, ebp
add ebp, 0xffffffff
test ecx, ecx
jne 0x46215b
sub dword [edi + 4], 4
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jae 0x462189
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov edx, dword [edi + 4]
mov eax, dword [edx]
test dword [eax], 0xf505
je 0x4621a2
push eax
call fcn.0046d450
pop ecx
jmp 0x462411
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
jmp 0x462411
test byte [ebx], 0x3a
jne 0x4621c9
test byte [ebx + 1], 4
je 0x462293
cmp dword [ebx + 8], 1
jne 0x462293
test byte [esi + 1], 4
je 0x462293
push ebx
call fcn.0046d114
pop ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x10]
lea esi, [eax + ecx]
test ecx, ecx
je 0x462201
dec ecx
dec esi
movsx eax, byte [esi]
cdq
xor dword [esp + 0x14], eax
xor dword [esp + 0x18], edx
test ecx, ecx
jne 0x4621ef
mov dword [ebx], 8
mov ecx, dword [esp + 0x14]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0xc], ecx
cmp dword [esp + 0x18], 0xffffffff
jne 0x462228
cmp dword [esp + 0x14], 0xc4653601
jb 0x46223f
jmp 0x46222a
jl 0x46223f
cmp dword [esp + 0x18], 2
jne 0x46223d
cmp dword [esp + 0x14], 0x540be3ff
jbe 0x462246
jmp 0x46223f
jle 0x462246
mov eax, 0x14
jmp 0x46224b
mov eax, 0xa
mov dword [ebx + 0x10], eax
sub dword [edi + 4], 4
mov edx, dword [edi + 4]
cmp edx, dword [edi]
jae 0x46226c
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x462285
push eax
call fcn.0046d450
pop ecx
jmp 0x462411
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
jmp 0x462411
test byte [ebx], 0x3a
jne 0x4622ac
test byte [ebx + 1], 4
je 0x462365
cmp dword [ebx + 8], 1
jne 0x462365
test byte [esi], 0x3a
jne 0x4622c5
test byte [esi + 1], 4
je 0x462365
cmp dword [esi + 8], 1
jne 0x462365
push ebx
call fcn.0046d114
pop ecx
push edx
push eax
push esi
call fcn.0046d114
pop ecx
xor eax, dword [esp]
xor edx, dword [esp + 4]
add esp, 8
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
cmp dword [ebx + 0xc], 0xffffffff
jne 0x4622f6
cmp dword [ebx + 8], 0xc4653601
jb 0x46230b
jmp 0x4622f8
jl 0x46230b
cmp dword [ebx + 0xc], 2
jne 0x462309
cmp dword [ebx + 8], 0x540be3ff
jbe 0x462312
jmp 0x46230b
jle 0x462312
mov edx, 0x14
jmp 0x462317
mov edx, 0xa
mov dword [ebx + 0x10], edx
mov dword [ebx], 8
sub dword [edi + 4], 4
mov eax, dword [edi + 4]
cmp eax, dword [edi]
jae 0x46233e
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x462357
push eax
call fcn.0046d450
pop ecx
jmp 0x462411
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
jmp 0x462411
push esi
push ebx
push 2
push 0x654f3d
push 0
push 0x440
push 1
call fcn.0048ec18
add esp, 0x1c
mov ebx, eax
test ebx, ebx
je 0x462411
sub dword [edi + 4], 4
mov edx, dword [edi + 4]
cmp edx, dword [edi]
jae 0x4623a7
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x4623bd
push eax
call fcn.0046d450
pop ecx
jmp 0x4623c6
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
sub dword [edi + 4], 4
mov edx, dword [edi + 4]
cmp edx, dword [edi]
jae 0x4623e4
push 0
push 0
push 0
push 0x233b
call fcn.0048eee0
add esp, 0x10
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
test dword [eax], 0xf505
je 0x4623fa
push eax
call fcn.0046d450
pop ecx
jmp 0x462403
mov edx, dword [edi + 4]
mov ecx, dword [edx]
xor eax, eax
mov dword [ecx], eax
push ebx
call fcn.0046d320
pop ecx
push ebx
call fcn.0046b514
pop ecx
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
ret