Function at 0x416590
Capabilities:
Encode data using xor

Disassembly:
test byte [0x46c9a4], 1
push ebp
push esi
push edi
jne 0x416748
mov edx, dword [0x46c9a4]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
or edx, 1
mov dword [0x46c9a4], edx
call edi
xor eax, 0x95f24dab
mov dword [0x46c940], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
call edi
xor esi, eax
xor esi, 0xb685215
mov dword [0x46c944], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
call edi
xor esi, eax
xor esi, 0xe76ccae7
push 0
mov dword [0x46c948], esi
call fcn.00430fb1
add esp, 4
mov esi, eax
call edi
xor esi, eax
xor esi, 0xaf3ec239
mov dword [0x46c94c], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov esi, eax
call edi
xor esi, eax
mov eax, dword [0x46c940]
mov ecx, eax
xor ecx, 0x24a590ad
mov dword [0x46c954], ecx
mov ecx, dword [0x46c944]
mov edx, ecx
xor edx, 0x69e4b5ef
mov dword [0x46c958], edx
mov edx, dword [0x46c948]
mov edi, edx
xor edi, 0xbf456141
mov dword [0x46c95c], edi
mov edi, dword [0x46c94c]
xor esi, 0x715fad23
mov ebp, edi
xor ebp, 0x96bc1b7b
mov dword [0x46c960], ebp
mov ebp, esi
xor ebp, 0xa7bdf825
mov dword [0x46c964], ebp
mov ebp, eax
xor ebp, 0xc1de75b7
mov dword [0x46c968], ebp
mov ebp, ecx
xor ebp, 0x8858a9c9
mov dword [0x46c96c], ebp
mov ebp, edx
xor ebp, 0x2da87693
mov dword [0x46c970], ebp
mov ebp, edi
xor ebp, 0xb657f9dd
mov dword [0x46c974], ebp
mov ebp, esi
xor ebp, 0xffdc8a9f
mov dword [0x46c978], ebp
mov ebp, eax
xor ebp, 0x8121da71
mov dword [0x46c97c], ebp
mov ebp, ecx
xor ebp, 0x8b823ecb
mov dword [0x46c980], ebp
mov ebp, edx
xor ebp, 0x885d05f5
mov dword [0x46c984], ebp
mov ebp, edi
xor ebp, 0x4e20cd47
mov dword [0x46c988], ebp
mov ebp, esi
mov dword [0x46c950], esi
xor ebp, 0x5a9ad5d9
xor eax, 0x512c0c03
xor ecx, 0xea857ccd
xor edx, 0x4cc1d30f
xor edi, 0x8891a8a1
xor esi, 0xa6b7aadb
mov dword [0x46c98c], ebp
mov dword [0x46c990], eax
mov dword [0x46c994], ecx
mov dword [0x46c998], edx
mov dword [0x46c99c], edi
mov dword [0x46c9a0], esi
mov eax, dword [0x46c938]
cmp eax, 0x19
jne 0x416888
xor eax, eax
jmp 0x416760
mov ecx, dword [eax*4 + 0x46c940]
mov edi, dword [eax*4 + 0x46c95c]
mov esi, dword [eax*4 + 0x46c960]
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, edi
mov ebp, dword [eax*4 + 0x46c964]
shr ecx, 1
xor edx, ecx
mov ecx, dword [eax*4 + 0x46c944]
mov dword [eax*4 + 0x46c940], edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, esi
mov edi, dword [eax*4 + 0x46c968]
shr ecx, 1
xor edx, ecx
mov ecx, dword [eax*4 + 0x46c948]
mov dword [eax*4 + 0x46c944], edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, ebp
mov esi, dword [eax*4 + 0x46c96c]
shr ecx, 1
xor edx, ecx
mov ecx, dword [eax*4 + 0x46c94c]
mov dword [eax*4 + 0x46c948], edx
mov ebp, dword [eax*4 + 0x46c970]
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, edi
shr ecx, 1
xor edx, ecx
mov ecx, dword [eax*4 + 0x46c950]
mov dword [eax*4 + 0x46c94c], edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, esi
shr ecx, 1
xor edx, ecx
mov ecx, dword [eax*4 + 0x46c954]
mov dword [eax*4 + 0x46c950], edx
mov edx, ecx
and edx, 1
mov edx, dword [edx*4 + 0x46a1fc]
xor edx, ebp
shr ecx, 1
xor edx, ecx
mov dword [eax*4 + 0x46c954], edx
add eax, 6
cmp eax, 0x12
jl 0x416760
cmp eax, 0x19
jge 0x416886
lea ecx, [eax*4 + 0x46c940]
mov eax, dword [ecx]
mov esi, dword [ecx - 0x48]
mov edx, eax
and edx, 1
mov edi, dword [edx*4 + 0x46a1fc]
shr eax, 1
xor eax, edi
xor eax, esi
mov dword [ecx], eax
add ecx, 4
cmp ecx, 0x46c9a4
jl 0x416862
xor eax, eax
mov ecx, dword [eax*4 + 0x46c940]
mov edx, ecx
and edx, 0x56b64a
shl edx, 7
xor ecx, edx
mov edx, ecx
and edx, 0xffffb716
shl edx, 0xf
xor ecx, edx
inc eax
mov dword [0x46c938], eax
pop edi
mov eax, ecx
shr eax, 0x10
pop esi
xor eax, ecx
pop ebp
ret