Function at 0x4ba020
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 0x52bde4
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x178
mov eax, dword [0x58b18c]
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 - 0x180], edi
mov dword [ebp - 0x178], ecx
mov esi, dword [ebx + 0xc]
lea eax, [ebp - 0x170]
push 0x144
push 0
push eax
call fcn.00500b60
add esp, 0xc
lea ecx, [ebp - 0x170]
call fcn.0042bd30
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
mov byte [ebp - 4], 1
mov eax, dword [0x598d6c]
cmp eax, dword [0x598d70]
jb 0x4ba0cb
xor eax, eax
mov dword [0x598d6c], eax
push 1
imul eax, eax, 0x354
mov ecx, 0x599944
push 1
add eax, 0x599bc8
push eax
push esi
push dword [ebx + 8]
lea eax, [ebp - 0x2c]
push edi
push eax
push str.version
call fcn.0042f620
cmp dword [ebp - 0x18], 0x10
lea ecx, [ebp - 0x2c]
mov esi, dword [ebp - 0x1c]
cmovae ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x17c], ecx
cmp esi, 0x11
jb 0x4ba1b8
lea eax, [esi - 0x10]
add eax, ecx
sub eax, ecx
push eax
push 0x49
push ecx
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4ba1b8
nop dword [eax]
mov ecx, edi
mov edx, str.Invalid_password.
mov esi, 0xd
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4ba151
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4ba140
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4ba178
cmp esi, 0xfffffffd
je 0x4ba174
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4ba178
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4ba178
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4ba178
xor eax, eax
jmp 0x4ba17d
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ba1a6
mov eax, dword [ebp - 0x17c]
inc edi
mov esi, dword [ebp - 0x1c]
add eax, 0xfffffff0
add eax, esi
sub eax, edi
push eax
push 0x49
push edi
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4ba130
jmp 0x4ba1b8
sub edi, dword [ebp - 0x17c]
cmp edi, 0xffffffff
jne 0x4ba406
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x2c]
cmp eax, 0x10
cmovae ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x17c], ecx
cmp esi, 0xc
jb 0x4ba282
lea eax, [ecx - 0xb]
add eax, esi
mov dword [ebp - 0x188], eax
sub eax, ecx
push eax
push 0x72
push ecx
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4ba27f
nop word [eax + eax]
mov ecx, edi
mov edx, str.rconpassword
mov esi, 8
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4ba225
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4ba210
xor eax, eax
jmp 0x4ba24c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4ba247
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4ba247
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4ba247
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4ba247
xor eax, eax
jmp 0x4ba24c
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ba26d
mov eax, dword [ebp - 0x188]
inc edi
sub eax, edi
push eax
push 0x72
push edi
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4ba200
jmp 0x4ba27c
sub edi, dword [ebp - 0x17c]
cmp edi, 0xffffffff
jne 0x4ba406
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp eax, 0x10
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x17c], ecx
cmp esi, 8
jb 0x4ba32f
lea eax, [ecx - 7]
add eax, esi
mov dword [ebp - 0x188], eax
sub eax, ecx
push eax
push 0x42
push ecx
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4ba32f
nop word [eax + eax]
mov ecx, edi
mov edx, str.Bad_rcon
mov esi, 4
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4ba2e5
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4ba2d0
xor eax, eax
jmp 0x4ba30c
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4ba307
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4ba307
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4ba307
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x4ba307
xor eax, eax
jmp 0x4ba30c
sbb eax, eax
or eax, 1
test eax, eax
je 0x4ba3f7
mov eax, dword [ebp - 0x188]
inc edi
sub eax, edi
push eax
push 0x42
push edi
call fcn.005023c0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4ba2c0
push 1
mov byte [ebp - 4], 3
call fcn.004f4d9d
add esp, 4
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 4
push eax
sub esp, 8
lea ecx, [ebp - 0x2c]
mov edx, str.CoD1
call fcn.004e09d0
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov byte [ebp - 0x171], al
test ecx, ecx
je 0x4ba384
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, eax
test ecx, ecx
je 0x4ba384
mov eax, dword [ecx]
push 1
call dword [eax]
cmp byte [ebp - 0x171], 0
je 0x4ba5ab
mov eax, dword [ebp - 0x178]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
mov byte [eax], 1
mov dword [eax + 4], 1
cmp ecx, 0x10
jb 0x4ba3d9
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba3cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 5
jmp 0x4ba848
sub edi, dword [ebp - 0x17c]
cmp edi, 0xffffffff
je 0x4ba32f
mov eax, dword [0x598d6c]
cmp eax, dword [0x598d70]
jb 0x4ba41a
xor eax, eax
mov dword [0x598d6c], eax
imul eax, eax, 0x354
push 1
push ecx
mov ecx, 0x599944
add eax, 0x599bc8
push eax
push dword [ebx + 8]
lea eax, [ebp - 0x2c]
push dword [ebp - 0x180]
push eax
push str.getstatus
call fcn.0042f7c0
mov eax, dword [0x598d6c]
cmp eax, dword [0x598d70]
jb 0x4ba459
xor eax, eax
mov dword [0x598d6c], eax
imul esi, eax, 0x354
add esi, 0x599d9c
mov dword [ebp - 0x188], esi
mov dword [ebp - 0x17c], esi
cmp dword [esi + 0x14], 0x10
mov edi, dword [esi + 0x10]
jb 0x4ba482
mov eax, dword [esi]
mov dword [ebp - 0x17c], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test edi, edi
je 0x4ba4aa
mov esi, dword [ebp - 0x17c]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x4ba493
mov esi, dword [ebp - 0x188]
push edx
push esi
lea eax, [ebp - 0x184]
push eax
call fcn.004e5000
cmp dword [eax + 4], 0
je 0x4ba51b
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x17c], esi
jb 0x4ba4d2
mov eax, dword [esi]
mov dword [ebp - 0x17c], eax
xor ecx, ecx
mov edx, 0x811c9dc5
test edi, edi
je 0x4ba4fa
mov esi, dword [ebp - 0x17c]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x4ba4e3
mov esi, dword [ebp - 0x188]
push edx
push esi
lea eax, [ebp - 0x184]
push eax
call fcn.004e5000
mov eax, dword [ebp - 0x180]
test eax, eax
je 0x4ba8e8
mov eax, dword [eax + 0x20]
jmp 0x4ba51d
xor eax, eax
mov esi, dword [ebp - 0x178]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
mov byte [esi], 0
mov dword [esi + 4], eax
cmp ecx, 0x10
jb 0x4ba561
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba557
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 2
cmp dword [ebp - 0x148], 0xffffffff
je 0x4ba58e
lea ecx, [ebp - 0x14c]
call fcn.0042fa80
cmp dword [ebp - 0xe8], 0xffffffff
je 0x4ba876
lea ecx, [ebp - 0xec]
call fcn.0042fa80
jmp 0x4ba876
push 1
mov byte [ebp - 4], 6
call fcn.004f4d9d
add esp, 4
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 7
push eax
sub esp, 8
lea ecx, [ebp - 0x2c]
mov edx, str.CoD2
call fcn.004e09d0
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov byte [ebp - 0x171], al
test ecx, ecx
je 0x4ba600
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, eax
test ecx, ecx
je 0x4ba600
mov eax, dword [ecx]
push 1
call dword [eax]
cmp byte [ebp - 0x171], 0
je 0x4ba66f
mov eax, dword [ebp - 0x178]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
mov byte [eax], 1
mov dword [eax + 4], 2
cmp ecx, 0x10
jb 0x4ba651
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba647
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 8
jmp 0x4ba848
push 1
mov byte [ebp - 4], 9
call fcn.004f4d9d
add esp, 4
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0xa
push eax
sub esp, 8
lea ecx, [ebp - 0x2c]
mov edx, str.CoD4
call fcn.004e09d0
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov byte [ebp - 0x171], al
test ecx, ecx
je 0x4ba6c4
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, eax
test ecx, ecx
je 0x4ba6c4
mov eax, dword [ecx]
push 1
call dword [eax]
cmp byte [ebp - 0x171], 0
je 0x4ba733
mov eax, dword [ebp - 0x178]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
mov byte [eax], 1
mov dword [eax + 4], 3
cmp ecx, 0x10
jb 0x4ba715
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba70b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xb
jmp 0x4ba848
push 1
mov byte [ebp - 4], 0xc
call fcn.004f4d9d
add esp, 4
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
mov byte [ebp - 4], 0xd
push eax
sub esp, 8
lea ecx, [ebp - 0x2c]
mov edx, str.CoD5
call fcn.004e09d0
mov ecx, dword [ebp - 0x180]
add esp, 0xc
mov byte [ebp - 0x171], al
test ecx, ecx
je 0x4ba788
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
mov ecx, eax
test ecx, ecx
je 0x4ba788
mov eax, dword [ecx]
push 1
call dword [eax]
cmp byte [ebp - 0x171], 0
mov eax, dword [ebp - 0x178]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
je 0x4ba7f4
mov byte [eax], 1
mov dword [eax + 4], 4
cmp ecx, 0x10
jb 0x4ba7d9
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba7cf
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xe
jmp 0x4ba848
mov byte [eax], 0
mov dword [eax + 4], 0
cmp ecx, 0x10
jb 0x4ba82f
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4ba825
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4ba8f2
push ecx
push edx
call fcn.004f79ae
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xf
cmp dword [ebp - 0x148], 0xffffffff
je 0x4ba85c
lea ecx, [ebp - 0x14c]
call fcn.0042fa80
cmp dword [ebp - 0xe8], 0xffffffff
je 0x4ba870
lea ecx, [ebp - 0xec]
call fcn.0042fa80
mov esi, dword [ebp - 0x178]
lea eax, [ebp - 0x5c]
push eax
call fcn.004f637c
add esp, 4
lea eax, [ebp - 0x8c]
push eax
call fcn.004f637c
add esp, 4
lea ecx, [ebp - 0xec]
call fcn.00430550
lea ecx, [ebp - 0x14c]
call fcn.00430550
lea ecx, [ebp - 0x158]
call fcn.0042a190
lea ecx, [ebp - 0x164]
call fcn.0042a190
lea ecx, [ebp - 0x170]
call fcn.0042fd00
mov eax, esi
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.004f7466
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push str.invalid_unordered_map_K__T__key
call fcn.004f4bc6
call fcn.005094c8
int3