Function at 0x46bab0
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x55ba5b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1cb4
call fcn.00554650
mov eax, dword [0x5c04b4]
xor eax, esp
mov dword [esp + 0x1cb0], eax
push ebx
push esi
push edi
mov eax, dword [0x5c04b4]
xor eax, esp
push eax
lea eax, [esp + 0x1cc8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x1c], esi
mov ecx, dword [ebp + 0xc]
xor al, al
mov dword [esp + 0x20], ecx
mov edi, 8
mov byte [esp + 0x1b], al
mov ebx, ecx
mov byte [esp + 0x12], al
cmp word [ecx], 0
mov byte [esp + 0x16], al
mov byte [esp + 0x17], al
mov byte [esp + 0x14], al
mov byte [esp + 0x15], al
mov byte [esp + 0x19], al
mov byte [esp + 0x18], al
mov byte [esp + 0x1a], al
mov byte [esp + 0x13], al
je 0x46c079
lea ecx, [ecx]
movzx eax, word [ebx]
cmp eax, 0x2f
je 0x46bb51
cmp eax, 0x2d
jne 0x46bd4c
add ebx, 2
mov ecx, ebx
mov dword [esp + 0x24], ebx
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x46bb60
sub ecx, edx
lea eax, [esp + 0x1c3c]
sar ecx, 1
cmp ecx, 0x40
jae 0x46bb8a
push ebx
push 0x40
push eax
call dword [sym.imp.MSVCR120.dll_wcscpy_s]
add esp, 0xc
jmp 0x46bba3
push 0x3f
push ebx
push 0x40
push eax
call dword [sym.imp.MSVCR120.dll_wcsncpy_s]
add esp, 0x10
xor eax, eax
mov word [esp + 0x1cba], ax
lea eax, [esp + 0x1c3c]
push 0x40
push eax
call dword [sym.imp.MSVCR120.dll__wcslwr_s]
lea edx, [esp + 0x1c44]
add esp, 8
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x46bbc0
sub edx, ecx
xor esi, esi
sar edx, 1
xor ecx, ecx
add edx, edx
je 0x46bbfe
jmp 0x46bbe0
movzx eax, byte [esp + esi + 0x1c3c]
inc esi
xor eax, ecx
shr ecx, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x58e240]
cmp esi, edx
jb 0x46bbe0
not ecx
cmp ecx, 0x787745ac
ja 0x46bc3e
je 0x46bd40
cmp ecx, 0x500b1e9
je 0x46bd40
cmp ecx, 0x670026d
je 0x46bc34
cmp ecx, 0x96ed4ee
jne 0x46bca5
mov byte [esp + 0x18], 1
jmp 0x46bd4c
mov byte [esp + 0x1a], 1
jmp 0x46bd4c
cmp ecx, 0xcb3082af
ja 0x46bc8d
je 0x46bc7e
cmp ecx, 0x81ccb811
je 0x46bc74
cmp ecx, 0xb0270909
je 0x46bc6a
cmp ecx, 0xc770fb00
jne 0x46bca5
mov byte [esp + 0x13], 1
jmp 0x46bd4c
mov byte [esp + 0x14], 1
jmp 0x46bd4c
mov byte [esp + 0x16], 1
jmp 0x46bd4c
mov byte [esp + 0x19], 1
mov byte [esp + 0x12], 1
jmp 0x46bd4c
cmp ecx, 0xde815614
je 0x46bd47
cmp ecx, 0xf20c4ee2
je 0x46bd3b
mov esi, dword [0x5c6b7c]
mov dword [esp + 0x2c], 0
test esi, esi
je 0x46bd4c
cmp dword [esi + 0x170], 0
jne 0x46bd4c
lea ebx, [esi + 0x16c]
mov eax, 1
lock xadd dword [ebx], eax
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 8]
test eax, eax
je 0x46bcfc
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x1c40]
push ecx
push 0x100c
call eax
add esp, 0xc
mov edi, eax
jmp 0x46bd01
mov edi, 0x1b67
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
jne 0x46bd25
cmp dword [esi + 0x170], 0
je 0x46bd25
mov ecx, esi
call fcn.004f5900
push esi
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
mov ebx, dword [esp + 0x24]
test edi, edi
jne 0x46bd4c
mov eax, dword [esp + 0x2c]
dec eax
jne 0x46bd4c
mov byte [esp + 0x1b], 1
jmp 0x46bd4c
mov byte [esp + 0x15], 1
mov byte [esp + 0x12], 1
jmp 0x46bd4c
mov byte [esp + 0x17], 1
push 0
push ebx
call dword [sym.imp.MSVCR120.dll_wcschr]
add esp, 8
cmp word [eax + 2], 0
lea ebx, [eax + 2]
jne 0x46bb40
mov al, byte [esp + 0x1b]
test al, al
je 0x46be53
call dword [0x5c00ec]
test eax, eax
je 0x46be4c
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov ebx, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 8
mov dword [esp + 0x3c], 1
cmp dword [ebx + 0x21f8], esi
jle 0x46bde0
lea esp, [esp]
mov ecx, dword [ebx + 0x21f4]
lea eax, [esp + 0x44]
push eax
push 0
push 0
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x44]
push 8
push eax
push 0x1f003
push 0
push 0
call fcn.004a7bf0
inc esi
cmp esi, dword [ebx + 0x21f8]
jl 0x46bdb0
mov eax, dword [0x5c07f4]
mov byte [0x5c0c18], 1
mov dword [0x5c0808], 0
cmp eax, 2
jne 0x46be07
mov dword [0x5c07f8], 0
jmp 0x46be1b
mov dword [0x5c07f8], 5
cmp eax, 4
je 0x46be2d
cmp eax, 1
je 0x46be2d
mov eax, dword [0x5c04f8]
mov dword [0x5c0804], eax
inc eax
mov dword [0x5c04f8], eax
jmp 0x46be37
mov dword [0x5c0804], 0
push 0x5c07f0
push dword [0x5c080c]
call dword [sym.imp.ADVAPI32.dll_SetServiceStatus]
xor edi, edi
jmp 0x46be5c
mov edi, 0xe
jmp 0x46be58
mov edi, 8
mov ebx, dword [esp + 0x1c]
mov al, byte [esp + 0x17]
test al, al
je 0x46bec3
xor ecx, ecx
mov dword [esp + 0x40], 0xf9
cmp dword [ebx + 0x21f8], ecx
jle 0x46bec1
mov edx, dword [ebx + 0x21f4]
lea esp, [esp]
mov eax, dword [edx]
cmp dword [eax + 0x10], 0x1000400
je 0x46be99
inc ecx
add edx, 4
cmp ecx, dword [ebx + 0x21f8]
jl 0x46be80
jmp 0x46bec1
mov eax, dword [ebx + 0x21f4]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x46bec1
push 0
push 0
push 0
push 4
lea eax, [esp + 0x50]
push eax
push 0x10006
push 0
push 0
call fcn.004a7bf0
xor edi, edi
mov al, byte [esp + 0x12]
test al, al
je 0x46c005
cmp byte [esp + 0x14], 0
je 0x46bf9b
xor ecx, ecx
mov dword [esp + 0x34], 0
cmp dword [ebx + 0x21f8], ecx
jle 0x46bf33
mov edx, dword [ebx + 0x21f4]
mov eax, dword [edx]
cmp dword [eax + 0x10], 0x1000101
je 0x46bf0b
inc ecx
add edx, 4
cmp ecx, dword [ebx + 0x21f8]
jl 0x46bef2
jmp 0x46bf33
mov eax, dword [ebx + 0x21f4]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x46bf33
push 0
push 0
push 0
push 4
lea eax, [esp + 0x44]
push eax
push 0x10006
push 0
push 0
call fcn.004a7bf0
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edi, [ebx + 0x94f8]
lea ebx, [edi + 0x78]
mov dword [esp + 0x48], edi
push ebx
call esi
mov dword [esp + 0x1cd0], 0
push ebx
call esi
and dword [ebx + 0x18], 0xfffffff7
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
call esi
mov ecx, dword [edi + 0x90]
call fcn.0050b160
mov ecx, dword [0x5c6138]
lea eax, [esp + 0x30]
push 1
push eax
mov dword [esp + 0x38], 0x82000000
call fcn.00496200
mov dword [esp + 0x1cd0], 0xffffffff
push ebx
call esi
xor edi, edi
jmp 0x46bfb0
mov al, byte [esp + 0x15]
test al, al
je 0x46bfb0
lea ecx, [ebx + 0x94f8]
call fcn.0054e520
mov edi, eax
mov al, byte [esp + 0x19]
mov esi, dword [esp + 0x1c]
test al, al
je 0x46c009
push 0
lea eax, [esp + 0x50]
mov ecx, esi
push eax
call fcn.0049a970
test eax, eax
je 0x46bff1
cmp dword [esp + 0x1318], 0
setne cl
cmp dword [esp + 0xa4], 0
setne al
test al, al
je 0x46c009
mov eax, str.gui.webpurchase.show
test cl, cl
jne 0x46bff6
mov eax, str.gui.webrenew.show
push eax
push dword [ebp + 8]
mov ecx, esi
call fcn.00497d20
mov edi, eax
jmp 0x46c009
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x16]
test al, al
je 0x46c030
cmp byte [esp + 0x14], 0
je 0x46c030
push 1
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x83000000
push eax
mov ecx, esi
call fcn.00496200
xor edi, edi
mov al, byte [esp + 0x18]
mov ebx, dword [esp + 0x20]
test al, al
je 0x46c047
push ebx
push ecx
mov ecx, esi
call fcn.0046c0d0
mov edi, eax
mov al, byte [esp + 0x1a]
test al, al
je 0x46c071
push 0
push ebx
call dword [sym.imp.MSVCR120.dll_wcschr]
add esp, 8
add eax, 2
je 0x46c06c
push eax
mov ecx, esi
call fcn.0046c340
mov edi, eax
jmp 0x46c071
mov edi, 0xe
mov ecx, dword [esp + 0x20]
mov al, byte [esp + 0x13]
cmp byte [ebp + 0x10], 0
je 0x46c0a5
test al, al
je 0x46c0a5
push 0
push ecx
call dword [sym.imp.MSVCR120.dll_wcschr]
add esp, 8
add eax, 2
je 0x46c09e
push eax
mov ecx, esi
call fcn.0046c4c0
jmp 0x46c0a7
mov eax, 0xe
jmp 0x46c0a7
mov eax, edi
mov ecx, dword [esp + 0x1cc8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1cb0]
xor ecx, esp
call fcn.00553510
mov esp, ebp
pop ebp
ret 0xc