Function at 0x476cc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e169b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x180
push ebx
push esi
push edi
mov esi, ecx
push 0x14
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x3c], esi
call fcn.00446710
lea eax, [ebp - 0x18c]
push eax
mov ecx, esi
mov dword [ebp - 4], 0
call fcn.00476b70
call fcn.00457c10
push eax
lea ecx, [ebp - 0x18c]
call fcn.0044b5e0
mov ecx, dword [0x6e7428]
xor edi, edi
call fcn.00468bc0
test al, al
jne 0x476d2f
mov edi, 4
push edi
lea ecx, [ebp - 0x18c]
call fcn.0044b5e0
mov ecx, dword [esi + 0x180]
push ecx
lea ecx, [ebp - 0x18c]
call fcn.0044b5e0
lea eax, [esi + 0x5d]
lea edx, [ebp - 0x6c]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x476d55
lea edx, [ebp - 0x6c]
push edx
call fcn.0045cc20
add esp, 4
lea eax, [esi + 0xd]
push eax
lea ecx, [ebp - 0x18c]
call sym.GameRanger.exe_public:_void___thiscall_CRecord::Write_cstring_char_const__
mov ecx, dword [0x6e7418]
xor eax, eax
push ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov edx, dword [0x60b520]
mov ecx, dword [0x60b528]
mov dword [ebp - 0x28], eax
mov eax, dword [0x60b524]
mov dword [ebp - 0x38], edx
mov edx, dword [0x60b52c]
mov dword [ebp - 0x34], eax
mov eax, dword [0x60b514]
mov dword [ebp - 0x2c], edx
lea edx, [ebp - 0x4c]
push edx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x30], ecx
mov ecx, dword [0x60b518]
lea eax, [ebp - 0x38]
push 0x1c
push eax
mov dword [ebp - 0x20], ecx
call fcn.005d5c40
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x4d]
lea edx, [ebp - 0x1c]
add esp, 0xc
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x476e00
lea edx, [ebp - 0x1c]
mov esi, 1
mov eax, edx
sub esi, edx
mov edi, 2
mov edx, 3
xor ecx, ecx
sub edi, eax
sub edx, eax
lea eax, [ebp + ecx - 0x1c]
mov ebx, ecx
and ebx, 0xf
movzx ebx, byte [ebp + ebx - 0x4c]
xor byte [eax], bl
lea ebx, [esi + eax]
and ebx, 0xf
movzx ebx, byte [ebp + ebx - 0x4c]
xor byte [eax + 1], bl
lea ebx, [edi + eax]
and ebx, 0xf
movzx ebx, byte [ebp + ebx - 0x4c]
xor byte [eax + 2], bl
lea ebx, [edx + eax]
and ebx, 0xf
movzx ebx, byte [ebp + ebx - 0x4c]
xor byte [eax + 3], bl
add ecx, 4
cmp ecx, 0x10
jb 0x476e26
push 0x10
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x18c]
call sym.GameRanger.exe_public:_void___thiscall_CRecord::Write_data_void_const___unsigned_int_
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x18c]
call sym.GameRanger.exe_public:_void___thiscall_CRecord::Write_cstring_char_const__
mov eax, dword [ebp - 0x3c]
add eax, 0x7d
push eax
lea ecx, [ebp - 0x18c]
call sym.GameRanger.exe_public:_void___thiscall_CRecord::Write_cstring_char_const__
lea ecx, [ebp - 0x18c]
push ecx
call fcn.0046bec0
push str.Requesting_New_Account...
call fcn.004021b0
add esp, 8
lea ecx, [ebp - 0x18c]
mov dword [ebp - 4], 0xffffffff
call fcn.004465d0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret