Function at 0x408610
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53117c
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x5857cc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [edi + 0xc]
mov esi, ecx
push eax
mov dword [ebp - 0x34], esi
call fcn.0047c1d0
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [esi + 0x14], vtable.IRovioCloudService.0
mov eax, dword [ebp + 8]
mov dword [esi], vtable.RovioAccountService.1.0
mov dword [esi + 0x14], vtable.RovioAccountService.0
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x44], 0xf
mov dword [esi + 0x40], ebx
mov byte [esi + 0x30], bl
push 0x14
mov byte [ebp - 4], 3
mov dword [esi + 0x54], ebx
call fcn.00521440
add esp, 4
cmp eax, ebx
je 0x40891e
mov dword [esi + 0x50], eax
mov dword [eax], eax
mov eax, dword [esi + 0x50]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x50]
mov dword [eax + 8], eax
mov ecx, dword [esi + 0x50]
mov byte [ecx + 0x10], 1
mov edx, dword [esi + 0x50]
mov byte [edx + 0x11], 1
mov eax, 0x407130
mov dword [ebp - 0x20], eax
push 0x405e70
xor ecx, ecx
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x1c], ecx
mov bl, 4
push str.loadCloudSettings
mov ecx, esi
mov byte [ebp - 4], bl
mov dword [ebp - 0x24], esi
call fcn.0047c2c0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
push 0x42bb10
lea ecx, [ebp - 0x24]
push ecx
mov eax, 0x407340
push str.saveCloudSettings
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
push 0x4080a0
xor ecx, ecx
lea edx, [ebp - 0x24]
push edx
mov eax, 0x4075d0
mov dword [ebp - 0x1c], ecx
push str.loginRovioId
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
mov eax, 0x405a60
mov dword [ebp - 0x20], eax
push 0x41e260
xor ecx, ecx
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x1c], ecx
push str.logoutRovioId
mov ecx, esi
mov dword [ebp - 0x24], esi
call fcn.0047c2c0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
push 0x41e260
lea ecx, [ebp - 0x24]
push ecx
mov eax, 0x405a70
push str.showProfileView
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
push 0x41e260
xor ecx, ecx
lea edx, [ebp - 0x24]
push edx
mov eax, 0x405a80
mov dword [ebp - 0x1c], ecx
push str.cancelProfileLoading
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
mov eax, 0x405a90
xor ecx, ecx
mov dword [ebp - 0x20], eax
push 0x41e260
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x1c], ecx
push str.cancelRovioIdLogin
mov ecx, esi
mov dword [ebp - 0x24], esi
call fcn.0047c2c0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
push 0x42bd40
lea ecx, [ebp - 0x24]
push ecx
mov eax, 0x406230
push str.setAccountParameter
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
push 0x41e260
xor ecx, ecx
lea edx, [ebp - 0x24]
push edx
mov eax, 0x405aa0
mov dword [ebp - 0x1c], ecx
push str.showProfileViewTemp
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
mov eax, 0x405ab0
mov dword [ebp - 0x20], eax
push 0x405e70
xor ecx, ecx
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x1c], ecx
push str.isAccountViewActive
mov ecx, esi
mov dword [ebp - 0x24], esi
call fcn.0047c2c0
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
push 0x405e70
lea ecx, [ebp - 0x24]
push ecx
mov eax, 0x405ac0
push str.shouldCloudOverwriteLocalSave
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
push 0x406660
xor ecx, ecx
lea edx, [ebp - 0x24]
push edx
mov eax, 0x405ad0
mov dword [ebp - 0x1c], ecx
push str.setCloudRequestTimeout
mov ecx, esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
call fcn.0047c2c0
mov ecx, dword [esi + 0xc]
push esi
push str.RovioAccount
call fcn.004f2df0
mov ecx, eax
call fcn.00478e20
mov edx, dword [ebp - 0x14]
mov eax, 0x4076f0
xor ecx, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], edx
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x30]
push 0x585b94
push ecx
call fcn.00408390
add esp, 0xc
push 0
push eax
lea ecx, [esi + 0x4c]
mov byte [ebp - 4], 5
call fcn.00406110
push eax
lea edx, [ebp - 0x48]
push edx
lea ecx, [esi + 0x4c]
call fcn.00406570
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], bl
test eax, eax
je 0x4088fe
dec dword [eax + 4]
mov ecx, eax
jne 0x4088fe
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00521458
mov esp, ebp
pop ebp
ret 8
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], ebx
call dword [0x545468]
push 0x56c290
lea ecx, [ebp - 0x40]
push ecx
mov dword [ebp - 0x40], vtable.std::bad_alloc.0
call fcn.00521446
int3