Function at 0x469930
Capabilities:
Encode data using xor

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x469960
test dword [0x87ed4c], 0xffffffff
jne 0x469bc0
call fcn.007663a0
jmp fcn.00469930
push edi
push esi
push ebp
push ebx
sub esp, 0x24
mov ebp, eax
mov ebx, edx
mov edi, ebx
test edx, edx
je 0x469bb2
movsx esi, byte [edx]
test esi, esi
je 0x469984
inc ebx
movsx esi, byte [ebx]
test esi, esi
jne 0x46997c
sub ebx, edx
and ebx, 0x3fffffff
mov edx, dword [ebp + 4]
xor eax, eax
test edx, edx
jle 0x469acf
mov ebp, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edi
mov eax, esi
xor eax, 1
cmp esi, 2
cmovge eax, esi
shl eax, 4
mov edx, dword [eax + ebp + 0xc]
test ecx, ecx
je 0x469a20
mov ebx, dword [eax + ebp]
lea edi, [ecx + 1]
movzx eax, byte [ecx]
test eax, eax
je 0x469b9c
mov dword [esp + 0x20], ecx
movzx ecx, byte [ebx]
movzx eax, byte [eax + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp eax, ecx
jne 0x469b91
movzx eax, byte [edi]
inc ebx
inc edi
test eax, eax
jne 0x4699d9
mov ecx, dword [esp + 0x20]
movzx ebx, byte [ebx]
movzx eax, byte [eax + 0x789b60]
movzx ebx, byte [ebx + 0x789b60]
cmp ebx, eax
je 0x469a20
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x4699ae
jmp 0x469acb
mov ebx, dword [edx + 0x20]
test ebx, ebx
je 0x469a8f
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
jle 0x469a6a
mov dword [esp + 4], ebp
mov ebp, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 8]
lea edi, [eax*8]
xor edi, eax
movzx eax, byte [ecx]
inc ecx
movzx eax, byte [eax + 0x789b60]
xor eax, edi
dec ebp
test ebp, ebp
jg 0x469a47
mov ebp, dword [esp + 4]
mov ecx, dword [esp + 0x20]
mov edi, dword [edx + 0x14]
xor edx, edx
div edi
mov eax, dword [ebx + edx*8 + 4]
mov edx, dword [ebx + edx*8]
mov ebx, 1
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
jmp 0x469aaa
mov eax, dword [edx + 0x1c]
mov edx, dword [edx + 0x18]
mov ebx, 1
mov dword [esp + 0xc], esi
mov dword [esp + 4], ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
test edx, edx
mov ebp, edx
cmovne ebp, ebx
dec edx
test ebp, ebp
je 0x469b77
test eax, eax
je 0x469b77
cmp ecx, dword [eax + 0x10]
je 0x469ad7
mov eax, dword [eax]
jmp 0x469aaa
mov eax, dword [esp + 0x18]
add esp, 0x24
pop ebx
pop ebp
pop esi
pop edi
ret
mov esi, dword [eax + 0xc]
mov ebp, dword [esp + 0x14]
mov edi, ecx
mov dword [esp], edx
mov dword [esp + 0x10], ecx
jmp 0x469aeb
inc esi
inc ebp
xor edx, edx
test edi, edi
cmovg edx, ebx
dec edi
test edx, edx
je 0x469b6e
movzx edx, byte [esi]
test edx, edx
je 0x469b6e
movzx edx, byte [edx + 0x789b60]
movzx ecx, byte [ebp]
movzx ecx, byte [ecx + 0x789b60]
cmp edx, ecx
je 0x469ae9
mov edx, dword [esp]
mov ecx, dword [esp + 0x10]
test edi, edi
js 0x469b38
movzx edi, byte [esi]
movzx esi, byte [edi + 0x789b60]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0x789b60]
cmp ebp, esi
jne 0x469ac7
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x469acf
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x4699ae
mov eax, dword [esp + 0x18]
add esp, 0x24
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp]
mov ecx, dword [esp + 0x10]
jmp 0x469b1b
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], 0
jmp 0x469b57
mov ebx, ecx
mov ecx, dword [esp + 0x20]
jmp 0x469a10
movzx ebx, byte [ebx]
movzx eax, byte [eax + 0x789b60]
movzx ebx, byte [ebx + 0x789b60]
jmp 0x469a10
xor ebx, ebx
jmp 0x46998c
push edi
push esi
push ebp
push ebx
sub esp, 0x20
mov ebx, eax
mov esi, edx
mov edi, esi
test edx, edx
je 0x469e1c
movsx ebp, byte [edx]
test ebp, ebp
je 0x469be4
inc esi
movsx ebp, byte [esi]
test ebp, ebp
jne 0x469bdc
sub esi, edx
and esi, 0x3fffffff
mov edx, dword [ebx + 4]
xor eax, eax
test edx, edx
jle 0x469d28
mov ebx, dword [ebx + 8]
xor ebp, ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edi
mov eax, ebp
xor eax, 1
cmp ebp, 2
jl 0x469c1a
mov eax, ebp
shl eax, 4
mov edx, dword [eax + ebx + 0xc]
test ecx, ecx
je 0x469c81
mov esi, dword [eax + ebx]
lea edi, [ecx + 1]
movzx eax, byte [ecx]
test eax, eax
je 0x469e06
mov dword [esp + 0x1c], ecx
movzx ecx, byte [esi]
movzx eax, byte [eax + 0x789b60]
movzx ecx, byte [ecx + 0x789b60]
cmp eax, ecx
jne 0x469dfb
inc esi
movzx eax, byte [edi]
inc edi
test eax, eax
jne 0x469c3a
mov ecx, dword [esp + 0x1c]
movzx esi, byte [esi]
movzx eax, byte [eax + 0x789b60]
movzx esi, byte [esi + 0x789b60]
cmp esi, eax
je 0x469c81
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x469c0e
jmp 0x469d24
mov esi, dword [edx + 0x20]
test esi, esi
je 0x469cea
mov eax, dword [esp + 0x10]
mov dword [esp + 4], eax
mov edi, dword [esp + 0xc]
xor eax, eax
test edi, edi
jle 0x469cc7
mov dword [esp], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
lea ebx, [eax*8]
xor ebx, eax
movzx eax, byte [ecx]
movzx eax, byte [eax + 0x789b60]
xor eax, ebx
inc ecx
dec edi
test edi, edi
jg 0x469ca5
mov ebx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov edi, dword [edx + 0x14]
xor edx, edx
div edi
mov eax, dword [esi + edx*8 + 4]
mov esi, dword [esi + edx*8]
mov dword [esp + 8], ebp
mov dword [esp], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x469d03
mov eax, dword [edx + 0x1c]
mov esi, dword [edx + 0x18]
mov dword [esp + 8], ebp
mov dword [esp], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor edx, edx
test esi, esi
setne dl
dec esi
test edx, edx
je 0x469dde
test eax, eax
je 0x469dde
cmp ebx, dword [eax + 0x10]
je 0x469d30
mov eax, dword [eax]
jmp 0x469d03
mov eax, dword [esp + 0x14]
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [eax + 0xc]
mov edi, ebx
mov ebp, ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov ecx, edx
jmp 0x469d45
inc ecx
inc ebp
xor edx, edx
test edi, edi
setg dl
dec edi
test edx, edx
je 0x469dd2
movzx ebx, byte [ecx]
test ebx, ebx
je 0x469dd2
movzx edx, byte [ebx + 0x789b60]
movzx ebx, byte [ebp]
movzx ebx, byte [ebx + 0x789b60]
cmp edx, ebx
je 0x469d43
mov edx, ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test edi, edi
js 0x469d99
movzx edi, byte [edx]
movzx edx, byte [edi + 0x789b60]
movzx ebp, byte [ebp]
movzx ebp, byte [ebp + 0x789b60]
cmp ebp, edx
jne 0x469d20
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x469d28
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x469c0e
mov eax, dword [esp + 0x14]
add esp, 0x20
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, ecx
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
jmp 0x469d7c
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 8]
mov ebx, dword [esp]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], 0
jmp 0x469dbb
mov esi, ecx
mov ecx, dword [esp + 0x1c]
jmp 0x469c71
movzx esi, byte [esi]
movzx eax, byte [eax + 0x789b60]
movzx esi, byte [esi + 0x789b60]
jmp 0x469c71
xor esi, esi
jmp 0x469bec