Function at 0x476a8e
Capabilities:
Generate random numbers via winapi

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5a63fe
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [0x631350]
xor eax, esp
mov dword [esp + 0x178], eax
push ebx
push esi
push edi
mov eax, dword [0x631350]
xor eax, esp
push eax
lea eax, [esp + 0x190]
mov dword fs:[0], eax
xor ebx, ebx
cmp dword [0x63adc4], ebx
je 0x476afb
push str.GFE::Client::CreateRpcSecret_called_more_than_once
lea esi, [esp + 0x3c]
call fcn.004037ae
mov dword [esp + 0x198], ebx
push 0x41
mov ecx, str.srcClientRpc.cpp
mov eax, esi
call fcn.0040277f
xor eax, eax
mov byte [esp + 0x178], bl
lea edi, [esp + 0x179]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0xf0000040
xor esi, esi
stosw word es:[edi], ax
inc esi
push esi
push ebx
stosb byte es:[edi], al
push ebx
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], ebx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x476b64
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x476b43
and eax, 0xffff
or eax, 0x80070000
push 0x55
push str.srcClientRpc.cpp
mov edx, eax
lea ecx, [esp + 0x5c]
call fcn.0047d2f3
push 0x60763c
lea eax, [esp + 0x58]
push eax
call fcn.00566ed2
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], edi
lea eax, [esp + 0x178]
push eax
push 0x10
push edi
mov dword [esp + 0x1a4], esi
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x476bb9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x476b9c
and eax, 0xffff
or eax, 0x80070000
push 0x5d
push str.srcClientRpc.cpp
mov edx, eax
lea ecx, [esp + 0x5c]
call fcn.0047d2f3
push 0x60763c
lea eax, [esp + 0x58]
jmp 0x476b5e
or dword [esp + 0x198], 0xffffffff
cmp edi, ebx
je 0x476bcd
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
lea eax, [esp + 0x178]
push eax
lea eax, [esp + 0x20]
push eax
push 0x10
pop ecx
call fcn.0048b784
pop ecx
pop ecx
push str.AA45D379_DBB1_4AF4_833B_39E697EDCCA4
mov dword [esp + 0x19c], 2
push dword [esp + 0x30]
push ebx
push 4
push ebx
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
mov dword [esp + 0x18], edi
mov byte [esp + 0x198], 3
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp edi, ebx
jne 0x476c4c
cmp eax, ebx
jle 0x476c2c
and eax, 0xffff
or eax, 0x80070000
push 0x71
push str.srcClientRpc.cpp
mov edx, eax
lea ecx, [esp + 0x5c]
call fcn.0047d2f3
push 0x60763c
lea eax, [esp + 0x58]
jmp 0x476b5e
cmp eax, 0xb7
jne 0x476c77
push str.RPC_secret_file_already_exists_in_this_session
lea esi, [esp + 0x3c]
call fcn.004037ae
mov byte [esp + 0x198], 4
push 0x75
mov ecx, str.srcClientRpc.cpp
mov eax, esi
jmp 0x476af6
push ebx
push ebx
push ebx
push 2
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x14], eax
cmp eax, ebx
jne 0x476cc4
call esi
cmp eax, ebx
jle 0x476c9b
and eax, 0xffff
or eax, 0x80070000
push 0x81
push str.srcClientRpc.cpp
mov edx, eax
lea ecx, [esp + 0xec]
call fcn.0047d2f3
push 0x60763c
lea eax, [esp + 0xe8]
jmp 0x476b5e
cmp dword [esp + 0x30], 8
mov eax, dword [esp + 0x1c]
jae 0x476cd3
lea eax, [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
add ecx, ecx
push ecx
push eax
push dword [esp + 0x1c]
call fcn.0055fe20
add esp, 0xc
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [0x63adc4], edi
push 1
xor edi, edi
lea esi, [esp + 0x20]
call fcn.00404589
mov ecx, dword [esp + 0x190]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x178]
xor ecx, esp
call fcn.0055c9d4
mov esp, ebp
pop ebp
ret