Function at 0x49bfe0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x617531
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push edi
mov eax, dword [0x711ab8]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x48]
xor edi, edi
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
push ecx
mov dword [esp + 0x24], edi
mov edx, esp
mov dword [esp + 0x54], esp
push edx
mov ecx, 0x6ca128
call fcn.0040b990
mov dword [esp + 0x44], 1
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [ebp]
mov ebx, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x60]
push ecx
push 1
push eax
push edx
push ebx
mov byte [esp + 0x68], 0
call fcn.004990d0
add esp, 0x30
mov dword [esp + 0x38], edi
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], 1
je 0x49c265
push edi
mov eax, esi
call fcn.004af840
mov ecx, dword [eax + 0x10]
add eax, 0x10
cmp dword [ecx - 0xc], 0
je 0x49c22e
push edi
mov eax, esi
call fcn.004af840
mov edx, dword [ebp]
mov ebx, dword [edx - 0xc]
add eax, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x49c0e9
cmp ecx, ebx
ja 0x49c22e
push ecx
push eax
push edx
call fcn.005c60c1
add esp, 0xc
test eax, eax
sete al
test al, al
je 0x49c22e
push ebp
lea edx, [esp + 0x4c]
push edx
call fcn.0040b930
mov dword [esp + 0x38], 2
push edi
mov eax, esi
call fcn.004af840
add eax, 8
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
lea ebx, [esp + 0x48]
call fcn.00430070
lea ecx, [esp + 0x24]
push ecx
mov ecx, str._Restore_Snapshot
call fcn.0040b990
mov ebx, eax
mov byte [esp + 0x38], 3
push edi
mov eax, esi
call fcn.004af840
add eax, 0xc
push eax
lea edx, [esp + 0x24]
push edx
call fcn.004247e0
mov byte [esp + 0x40], 4
push eax
lea eax, [esp + 0x28]
push eax
mov ebx, 0x6d0bf8
call fcn.0041e2b0
mov byte [esp + 0x48], 5
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x28]
push edx
mov ebx, eax
call fcn.004247e0
add esp, 0x18
mov byte [esp + 0x38], 7
lea ecx, [esp + 0x1c]
call fcn.0040ba40
mov byte [esp + 0x38], 8
lea ecx, [esp + 0x20]
call fcn.0040ba40
mov bl, 9
mov byte [esp + 0x38], bl
lea ecx, [esp + 0x24]
call fcn.0040ba40
push edi
mov eax, esi
call fcn.004af840
add eax, 0x10
mov eax, dword [eax]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.004300f0
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
push ecx
push edx
push ecx
mov eax, esp
mov dword [esp + 0x38], esp
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.0040b930
mov byte [esp + 0x44], 0xa
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
push edx
push 1
push eax
mov eax, dword [esp + 0x6c]
push eax
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x68], bl
call fcn.004990d0
add esp, 0x30
lea ecx, [esp + 0x28]
call fcn.0040ba40
mov byte [esp + 0x38], 2
lea ecx, [esp + 0x14]
call fcn.0040ba40
mov byte [esp + 0x38], 0
lea ecx, [esp + 0x48]
call fcn.0040ba40
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
cmp edi, eax
jb 0x49c097
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x2c
ret