Function at 0x494031
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c6bb9
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x4f06b4]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push esi
push edi
mov eax, dword [0x4f06b4]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
mov ebx, ecx
push 7
pop eax
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], esi
mov word [esp + 0x38], cx
mov dword [esp + 0xf0], esi
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xb8], esi
mov word [esp + 0xa8], ax
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0xf4], 1
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x1d0]
cmp dword [esp + 0x48], esi
je 0x4943f0
lea edx, [esp + 0x38]
mov ecx, ebx
call fcn.0048f926
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
lea eax, [esp + 0x70]
push 0x4cb648
push eax
lea edi, [esp + 0x40]
mov byte [esp + 0xf8], 2
call fcn.00408817
lea edx, [ebx + 0x80]
push edx
lea ecx, [esp + 0xd0]
push ecx
mov ecx, eax
mov byte [esp + 0x100], 3
mov dword [esp + 0x44], edx
call fcn.00408ce7
mov ecx, 0xfde9
push ecx
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x108], 4
call fcn.0047a1b8
add esp, 0x18
push 1
xor edi, edi
lea esi, [esp + 0xc8]
call fcn.0040a3ed
push 1
lea esi, [esp + 0x74]
mov byte [esp + 0xf4], 2
call fcn.0040a3ed
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
sub eax, edi
push 0x38
cdq
pop ecx
idiv ecx
and dword [esp + 0x14], 0
or esi, 0xffffffff
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], eax
test eax, eax
je 0x4941ed
cmp dword [edi + 0x14], 8
jb 0x494193
mov eax, dword [edi]
jmp 0x494195
mov eax, edi
push 0x12
push str.IsFolderAccessible
push eax
call fcn.004a6c39
add esp, 0xc
test eax, eax
jne 0x4941af
mov esi, dword [esp + 0x14]
jmp 0x4941d7
cmp dword [edi + 0x14], 8
jb 0x4941b9
mov eax, dword [edi]
jmp 0x4941bb
mov eax, edi
push 0xf
push str.UpgradePrepared
push eax
call fcn.004a6c39
add esp, 0xc
test eax, eax
jne 0x4941d7
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], eax
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
add edi, 0x38
cmp eax, dword [esp + 0x28]
jb 0x494189
cmp esi, 0xffffffff
jne 0x49425b
lea eax, [esp + 0x38]
push eax
call fcn.004812a7
pop ecx
mov esi, 0x4e0af4
test al, al
jne 0x494206
mov esi, 0x4e0af8
push str.IsFolderAccessible
lea eax, [esp + 0x74]
call fcn.00409d45
push esi
lea eax, [esp + 0x90]
mov byte [esp + 0xf4], 5
call fcn.00409d45
lea eax, [esp + 0x70]
lea esi, [esp + 0x18]
mov byte [esp + 0xf0], 6
call fcn.00494e2e
push 1
xor edi, edi
lea esi, [esp + 0x90]
call fcn.0040a3ed
push 1
lea esi, [esp + 0x74]
call fcn.0040a3ed
jmp 0x4942c8
imul esi, esi, 0x38
add esi, dword [esp + 0x18]
xor eax, eax
push eax
lea ecx, [esp + 0x74]
lea eax, [esi + 0x1c]
push ecx
call fcn.00412ebd
cmp dword [eax + 0x14], 0x10
pop ecx
pop ecx
jb 0x49427c
mov eax, dword [eax]
push eax
call fcn.004a63a9
pop ecx
mov ebx, eax
push 0
neg ebx
push 1
lea ecx, [esp + 0x78]
sbb bl, bl
call fcn.0040a0a5
inc bl
je 0x4942c4
lea eax, [esp + 0x38]
push eax
call fcn.004812a7
pop ecx
mov edi, 0x4e0af4
test al, al
jne 0x4942b3
mov edi, 0x4e0af8
push edi
add esi, 0x1c
call fcn.004a5eb4
pop ecx
mov ecx, edi
call fcn.00409cca
mov ebx, dword [esp + 0x2c]
and dword [esp + 0x64], 0
xor eax, eax
mov dword [esp + 0x68], 7
mov word [esp + 0x54], ax
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0xf4], 7
mov eax, dword [ebx]
push 0
mov ecx, ebx
call dword [eax + 0x84]
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x49433a
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x38
cmp dword [esp + 0x68], 8
lea esi, [eax + ecx]
mov eax, dword [esp + 0x54]
lea ecx, [esi + 0x1c]
jae 0x49431a
lea eax, [esp + 0x54]
mov edi, dword [esp + 0x64]
push eax
mov eax, dword [ecx + 0x10]
call fcn.0040dd1e
test eax, eax
jne 0x49433a
push esi
lea eax, [esp + 0x2c]
push eax
lea edi, [esp + 0x20]
call fcn.00494e7a
lea eax, [esp + 0xc4]
push 0x4cb648
push eax
lea edi, [esp + 0x40]
call fcn.00408817
push dword [esp + 0x3c]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, eax
mov byte [esp + 0x100], 8
call fcn.00408ce7
add esp, 0x10
lea edx, [esp + 0x18]
mov ecx, eax
mov byte [esp + 0xf0], 9
call fcn.0047a421
push 1
xor edi, edi
lea esi, [esp + 0x74]
call fcn.0040a3ed
push 1
lea esi, [esp + 0xc8]
call fcn.0040a3ed
push 1
lea esi, [esp + 0x58]
call fcn.0040a3ed
lea esi, [esp + 0x18]
call fcn.0048c7ea
mov bl, 1
push 1
xor edi, edi
lea esi, [esp + 0xac]
call fcn.0040a3ed
push 1
lea esi, [esp + 0x3c]
call fcn.0040a3ed
mov al, bl
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.004a545d
mov esp, ebp
pop ebp
ret
xor bl, bl
jmp 0x4943af