Function at 0x46d6e0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ba6c3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x158
mov eax, dword [0x4e0138]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x144], ecx
mov esi, dword [ebx + 8]
lea eax, [ebp - 0x130]
push 0xa8
push 0
push eax
call fcn.0048f850
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.0041c730
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
push 0
push 1
push esi
push edi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c]
push dword [ebp - 0x144]
lea ecx, [ebp - 0x130]
push eax
push str.getstatus
call fcn.0041f6e0
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmovae ecx, edx
mov dword [ebp - 0x138], ecx
cmp eax, 0xe
jb 0x46e100
add eax, 0xfffffff3
add eax, ecx
sub eax, ecx
push eax
push 0x73
push ecx
call fcn.004910b0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46e0fd
nop dword [eax]
mov ecx, edi
mov edx, str.statusResponse
mov esi, 0xa
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x46d7f1
add ecx, 4
add edx, 4
sub esi, 4
jae 0x46d7e0
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x46d818
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x46d818
cmp esi, 0xfffffffe
je 0x46d814
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x46d818
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x46d818
xor eax, eax
jmp 0x46d81d
sbb eax, eax
or eax, 1
test eax, eax
je 0x46d849
mov ecx, dword [ebp - 0x138]
inc edi
mov eax, dword [ebp - 0x1c]
add ecx, 0xfffffff3
add eax, ecx
sub eax, edi
push eax
push 0x73
push edi
call fcn.004910b0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x46d7d0
jmp 0x46e0fd
sub edi, dword [ebp - 0x138]
cmp edi, 0xffffffff
je 0x46e0fd
cmp dword [ebp - 0x18], 0x10
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmovae eax, edx
cmp byte [eax + 4], 0x73
jne 0x46e100
cmp dword [ebp - 0x18], 0x10
lea esi, [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmovae esi, edx
cmp eax, 0x14
jbe 0x46d89d
add eax, 0xffffffec
push eax
lea eax, [esi + 0x14]
push 0xa
push eax
call fcn.004910b0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x46d89d
sub edi, esi
jmp 0x46d8a0
or edi, 0xffffffff
push ecx
xorps xmm0, xmm0
mov dword [ebp - 0x144], 0
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x70]
movups xmmword [ebp - 0x70], xmm0
movups xmmword [ebp - 0x60], xmm0
call fcn.0046fe90
mov byte [ebp - 4], 2
inc edi
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x13c], eax
cmp edi, eax
jae 0x46db70
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x140], 0
nop dword [eax + eax]
cmp ecx, 0x10
setae byte [ebp - 0x131]
nop word [eax + eax]
cmp ecx, 0x10
lea eax, [ebp - 0x2c]
cmovae eax, edx
cmp byte [eax + edi], 0x20
jne 0x46d912
inc edi
jmp 0x46d900
mov cl, byte [ebp - 0x131]
mov esi, edi
nop word [eax + eax]
test cl, cl
lea eax, [ebp - 0x2c]
cmovne eax, edx
cmp byte [eax + esi], 0x20
je 0x46d931
inc esi
jmp 0x46d920
mov eax, dword [ebp - 0x13c]
xorps xmm0, xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
movups xmmword [ebp - 0x88], xmm0
cmp eax, edi
jb 0x46e168
sub eax, edi
mov ecx, esi
sub ecx, edi
cmp eax, ecx
cmovb ecx, eax
cmp byte [ebp - 0x131], 0
lea eax, [ebp - 0x2c]
cmovne eax, edx
push ecx
add eax, edi
lea ecx, [ebp - 0x88]
push eax
call fcn.004127b0
mov edx, str.__t_n_f_v_r
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x88]
call fcn.00420f10
lea edx, [ebp - 0x138]
lea ecx, [ebp - 0x88]
call fcn.00444b50
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test al, al
mov eax, dword [ebp - 0x138]
cmove eax, ecx
mov ecx, dword [ebp - 0x2c]
cmp edi, 0x10
mov dword [ebp - 0x138], eax
setae byte [ebp - 0x131]
cmp edi, 0x10
lea eax, [ebp - 0x2c]
lea edx, [esi + 1]
cmovae eax, ecx
cmp byte [eax + esi], 0x22
je 0x46d9dc
mov esi, edx
jmp 0x46d9c6
mov edi, edx
nop
cmp byte [ebp - 0x131], 0
lea eax, [ebp - 0x2c]
cmovne eax, ecx
cmp byte [eax + edi], 0x22
je 0x46d9f6
inc edi
jmp 0x46d9e0
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
cmp eax, edx
jb 0x46e168
sub eax, edx
mov ecx, edi
sub ecx, edx
cmp eax, ecx
cmovb ecx, eax
cmp byte [ebp - 0x131], 0
lea eax, [ebp - 0x2c]
cmovne eax, dword [ebp - 0x2c]
push ecx
add eax, edx
lea ecx, [ebp - 0x50]
push eax
call fcn.004127b0
mov edx, str.__t_n_f_v_r
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x50]
call fcn.00420f10
mov esi, dword [ebp - 0x140]
add esi, dword [0x4e6b14]
mov edx, esi
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x46da60
sub edx, ecx
cmp dword [ebp - 0x3c], 0x10
push edx
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x50]
cmovae ecx, dword [ebp - 0x50]
push esi
call fcn.00413b30
add esp, 8
test al, al
je 0x46da91
mov eax, dword [ebp - 0x138]
mov dword [esi + 0xa4], eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x70]
call fcn.00421390
add dword [ebp - 0x140], 0xc0
inc edi
mov eax, dword [eax]
inc dword [eax + 0x20]
lea eax, [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
mov edx, dword [ebp - 0x2c]
cmovae eax, edx
cmp byte [eax + edi], 0xa
jne 0x46daca
inc edi
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x3c]
cmp eax, 0x10
jb 0x46db0a
mov edx, dword [ebp - 0x50]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x46dafa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e16d
push ecx
push edx
call fcn.004885c3
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edx, dword [ebp - 0x2c]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp eax, 0x10
jb 0x46db5f
mov edx, dword [ebp - 0x88]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x46db4f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e16d
push ecx
push edx
call fcn.004885c3
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x13c], eax
cmp edi, eax
jb 0x46d8f0
xor ecx, ecx
mov dword [ebp - 0x30], 0
xorps xmm0, xmm0
mov dword [ebp - 0x30], ecx
movq qword [ebp - 0x38], xmm0
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
xor eax, eax
mov byte [ebp - 4], 5
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], eax
cmp dword [0x4e6ee4], eax
jbe 0x46ddf7
nop dword [eax + eax]
lea edx, [eax + eax*2]
mov dword [ebp - 0x40], 0
shl edx, 6
xorps xmm0, xmm0
add edx, dword [0x4e6b14]
mov ecx, edx
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46dbd6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.004127b0
mov byte [ebp - 4], 6
lea esi, [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
mov edx, 0x811c9dc5
mov edi, dword [ebp - 0x40]
cmp eax, 0x10
mov dword [ebp - 0x140], eax
cmovae esi, dword [ebp - 0x50]
xor ecx, ecx
test edi, edi
je 0x46dc21
nop
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x46dc10
push edx
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x70]
call fcn.004225f0
mov esi, dword [ebp - 0x6c]
mov eax, dword [eax + 4]
test eax, eax
cmovne esi, eax
mov dword [ebp - 0x148], esi
cmp esi, dword [ebp - 0x6c]
je 0x46dd48
dec dword [esi + 0x20]
cmp dword [esi + 0x20], 0
jg 0x46dd40
cmp dword [esi + 0x1c], 0x10
lea edi, [esi + 8]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x138], edi
jb 0x46dc7c
mov eax, dword [edi]
mov dword [ebp - 0x138], eax
xor ecx, ecx
mov edx, 0x811c9dc5
cmp dword [edi + 0x10], ecx
jbe 0x46dcae
mov edi, dword [ebp - 0x138]
mov esi, dword [ebp - 0x144]
movzx eax, byte [edi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x46dc94
mov esi, dword [ebp - 0x148]
lea edi, [esi + 8]
mov ecx, dword [ebp - 0x58]
and ecx, edx
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + ecx*8]
cmp dword [edx + ecx*8 + 4], esi
jne 0x46dcd8
cmp eax, esi
jne 0x46dccf
mov eax, dword [ebp - 0x6c]
mov dword [edx + ecx*8], eax
mov dword [edx + ecx*8 + 4], eax
jmp 0x46dce1
mov eax, dword [esi + 4]
mov dword [edx + ecx*8 + 4], eax
jmp 0x46dce1
cmp eax, esi
jne 0x46dce1
mov eax, dword [esi]
mov dword [edx + ecx*8], eax
mov ecx, dword [esi]
dec dword [ebp - 0x68]
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x46dd24
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x46dd1a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e16d
mov eax, edx
push ecx
push eax
call fcn.004885c3
add esp, 8
push 0x24
push esi
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
call fcn.004885c3
add esp, 8
mov ecx, dword [ebp - 0x140]
jmp 0x46dd9e
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x30]
je 0x46dd87
movups xmm0, xmmword [ebp - 0x50]
mov esi, dword [ebp - 0x13c]
mov ecx, 0xf
mov dword [eax], esi
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
movups xmmword [eax + 4], xmm0
mov byte [ebp - 0x50], 0
movq xmm0, qword [ebp - 0x40]
movq qword [eax + 0x14], xmm0
add dword [ebp - 0x34], 0x1c
jmp 0x46dda4
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x138]
push ecx
push eax
lea ecx, [ebp - 0x38]
call fcn.0047a990
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x13c]
mov byte [ebp - 4], 5
cmp ecx, 0x10
jb 0x46ddd9
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46ddcf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e16d
push ecx
push edx
call fcn.004885c3
add esp, 8
inc esi
mov eax, esi
mov dword [ebp - 0x13c], esi
mov dword [ebp - 0x138], esi
cmp eax, dword [0x4e6ee4]
jb 0x46dbb0
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x154], eax
cmp ecx, eax
je 0x46e07d
lea edx, [ecx + 4]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x150], edx
mov esi, dword [ecx]
mov dword [ebp - 0x138], esi
cmp esi, ecx
je 0x46e062
nop dword [eax]
nop dword [eax + eax]
cmp dword [esi + 0x20], 0
lea ecx, [esi + 8]
mov dword [ebp - 0x14c], ecx
jle 0x46dffe
mov eax, dword [esi + 0x18]
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x13c], eax
sub eax, edi
cmp eax, 2
ja 0x46df08
cmp dword [edx + 0x14], 0x10
mov dword [ebp - 0x148], edx
jb 0x46de6e
mov edx, dword [edx]
mov dword [ebp - 0x148], edx
cmp dword [esi + 0x1c], 0x10
lea edx, [esi + 0x1c]
mov dword [ebp - 0x140], edx
mov eax, ecx
mov edx, dword [ebp - 0x148]
jb 0x46de87
mov eax, dword [ecx]
push edi
mov dword [ebp - 0x164], eax
lea ecx, [ebp - 0x164]
mov eax, dword [ebp - 0x13c]
push edx
mov dword [ebp - 0x160], eax
call fcn.00420440
test al, al
jne 0x46e013
mov eax, dword [ebp - 0x150]
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x46debe
mov edx, dword [eax]
mov esi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x14c]
mov ecx, eax
cmp dword [esi], 0x10
mov esi, dword [ebp - 0x138]
jb 0x46ded9
mov ecx, dword [eax]
mov eax, dword [ebp - 0x13c]
push edi
mov dword [ebp - 0x15c], ecx
lea ecx, [ebp - 0x15c]
push edx
mov dword [ebp - 0x158], eax
call fcn.004119c0
test al, al
jne 0x46e013
mov edx, dword [ebp - 0x150]
jmp 0x46df11
lea eax, [esi + 0x1c]
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x13c], edi
jbe 0x46dffe
test edi, edi
je 0x46dffe
xor ecx, ecx
test edi, edi
je 0x46df8b
mov esi, dword [ebp - 0x14c]
cmp dword [edx + 0x14], 0x10
mov dword [ebp - 0x148], edx
jb 0x46df45
mov eax, dword [edx]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x144], esi
cmp dword [eax], 0x10
jb 0x46df5e
mov eax, dword [esi]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x148]
mov edx, dword [ebp - 0x144]
mov al, byte [eax + ecx]
cmp al, byte [edx + ecx]
mov edx, dword [ebp - 0x150]
jne 0x46df7d
inc ecx
cmp ecx, edi
jb 0x46df31
mov esi, dword [ebp - 0x138]
cmp edi, ecx
jb 0x46dff7
mov esi, dword [ebp - 0x14c]
cmp dword [edx + 0x14], 0x10
mov dword [ebp - 0x144], edx
jb 0x46dfa5
mov eax, dword [edx]
mov dword [ebp - 0x144], eax
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x148], esi
cmp dword [eax], 0x10
jb 0x46dfbe
mov eax, dword [esi]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x144]
mov edx, dword [ebp - 0x13c]
mov esi, dword [ebp - 0x148]
mov al, byte [eax + edi - 1]
cmp al, byte [esi + edx - 1]
mov edx, dword [ebp - 0x150]
mov esi, dword [ebp - 0x14c]
jne 0x46dff1
dec dword [ebp - 0x13c]
dec edi
cmp edi, ecx
jae 0x46df91
mov esi, dword [ebp - 0x138]
sub edi, ecx
cmp edi, 1
jbe 0x46e02d
mov esi, dword [esi]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x138], esi
cmp esi, ecx
jne 0x46de30
jmp 0x46e062
cmp dword [esi + 0x1c], 0x10
mov eax, dword [ebp - 0x14c]
jb 0x46e021
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x150]
mov eax, dword [eax - 4]
jmp 0x46e03f
cmp dword [esi + 0x1c], 0x10
mov eax, dword [ebp - 0x14c]
jb 0x46e03b
mov eax, dword [eax]
push eax
mov eax, dword [edx - 4]
lea eax, [eax + eax*2]
shl eax, 6
add eax, dword [0x4e6b14]
push 0x21
push eax
call fcn.0049af24
mov edx, dword [ebp - 0x150]
add esp, 0xc
dec dword [esi + 0x20]
mov ecx, dword [ebp - 0x6c]
add edx, 0x1c
mov dword [ebp - 0x150], edx
lea eax, [edx - 4]
cmp eax, dword [ebp - 0x154]
jne 0x46de14
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x46e0f5
mov edx, dword [ebp - 0x34]
push ecx
call fcn.00475f60
mov ecx, dword [ebp - 0x30]
mov eax, 0x92492493
mov esi, dword [ebp - 0x38]
add esp, 4
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x46e0d6
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e16d
push ecx
push esi
call fcn.004885c3
add esp, 8
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x70]
call fcn.0042c500
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
cmp ecx, 0x10
jb 0x46e12d
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46e123
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x46e172
push ecx
push edx
call fcn.004885c3
add esp, 8
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
call fcn.0042bb20
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048824f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.004119b0
call fcn.0049a67c
call fcn.0049a67c
int3