Function at 0x4985c0
Capabilities:
Create directory

Disassembly:
push ebp
lea ebp, [esp - 0x3c]
sub esp, 0x3c
push 0xffffffffffffffff
push 0x543b3b
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x596c60]
xor eax, ebp
mov dword [ebp + 0x38], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov edi, ecx
mov dword [ebp], edi
mov eax, dword [0x597f88]
cmp eax, 0x597f88
je 0x498637
test byte [eax + 0x1c], 2
je 0x498637
cmp byte [eax + 0x19], 6
jb 0x498637
push str.Install
push str.Entered_function
push dword [eax + 0x14]
mov edx, 0x56cf18
mov ecx, 0xa
push dword [eax + 0x10]
call fcn.00497d50
add esp, 0x10
mov ecx, edi
call fcn.004bc680
mov esi, eax
mov dword [ebp + 4], esi
test esi, esi
jne 0x498afc
call fcn.004a38a0
mov esi, eax
mov dword [ebp + 4], esi
test esi, esi
jne 0x498afc
push eax
push ebx
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov esi, eax
lea ecx, [ebp + 0x20]
push ebx
mov dword [ebp + 4], esi
call fcn.0047af80
lea ecx, [ebp + 0x20]
mov dword [ebp - 4], 0
call fcn.00493210
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp + 0x34], 8
jb 0x4986a0
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4986a0
push eax
call fcn.00507b54
add esp, 4
test esi, esi
je 0x4988a2
mov ecx, ebx
call fcn.00483e90
cmp eax, 0xffffffff
je 0x4986bc
test al, 0x10
jne 0x4988a2
push 2
call fcn.004a1320
mov ecx, eax
call fcn.004a14d0
test al, al
je 0x4987b1
sub esp, 8
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 2
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x70
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Failed_to_create_Install_directory.
mov ecx, eax
call fcn.0047f0b0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 2
call fcn.0047abe0
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov ebx, eax
mov byte [ebp - 4], 4
cmp dword [ebx + 0x14], 0x10
jb 0x498766
mov ebx, dword [ebx]
call fcn.004a1320
push ebx
push 2
mov ecx, eax
call fcn.004a1510
lea ecx, [ebp + 0x20]
call fcn.0047abe0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0047b5a0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x4987aa
mov dword [ebp - 4], 0xffffffff
mov dword [ebp + 4], esi
cmp esi, 0x91
je 0x498afc
push 2
call fcn.004a1320
mov ecx, eax
call fcn.004a14d0
test al, al
je 0x4989fc
sub esp, 8
mov dword [ebp - 4], 0xb
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0xc
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x85
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Failed_to_Install__Starting_RollBack.
mov ecx, eax
call fcn.0047f0b0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0xc
call fcn.0047abe0
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov ebx, eax
mov byte [ebp - 4], 0xe
cmp dword [ebx + 0x14], 0x10
jb 0x49886d
mov ebx, dword [ebx]
call fcn.004a1320
push ebx
push 2
mov ecx, eax
call fcn.004a1510
lea ecx, [ebp + 0x20]
call fcn.0047abe0
lea ecx, [ebp - 0xa8]
call fcn.00479050
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 8]
jmp 0x498afc
sub esp, 0x18
mov ecx, esp
push ebx
call fcn.0047af80
call fcn.004a3790
add esp, 0x18
test al, al
je 0x498a08
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov esi, eax
mov dword [ebp + 4], esi
test esi, esi
jne 0x4987b4
mov ecx, edi
call fcn.004bcc10
mov esi, eax
mov dword [ebp + 4], esi
test esi, esi
jne 0x4987b4
push 4
call fcn.004a1320
mov ecx, eax
call fcn.004a14d0
test al, al
je 0x498afc
sub esp, 8
mov dword [ebp - 4], 0x10
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x11
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x89
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Install_Successfull.
mov ecx, eax
call fcn.0047f0b0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x11
call fcn.0047abe0
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov edi, eax
mov byte [ebp - 4], 0x13
cmp dword [edi + 0x14], 0x10
jb 0x498992
mov edi, dword [edi]
call fcn.004a1320
push edi
push 4
mov ecx, eax
call fcn.004a1510
lea ecx, [ebp + 0x20]
call fcn.0047abe0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x10
call fcn.0047b5a0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp 0x498afc
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
jmp 0x498afc
call fcn.004a3dc0
push 2
call fcn.004a1320
mov ecx, eax
call fcn.004a14d0
test al, al
je 0x498af4
sub esp, 8
mov dword [ebp - 4], 6
lea ecx, [ebp - 0xa8]
call fcn.0047b4d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 7
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xa8]
call fcn.0047ee50
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x7e
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Error:_Install_directory_not_empty.
mov ecx, eax
call fcn.0047f0b0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 7
call fcn.0047abe0
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xa8]
call fcn.0047b620
mov esi, eax
mov byte [ebp - 4], 9
cmp dword [esi + 0x14], 0x10
jb 0x498ab7
mov esi, dword [esi]
call fcn.004a1320
push esi
push 2
mov ecx, eax
call fcn.004a1510
lea ecx, [ebp + 0x20]
call fcn.0047abe0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.0047b5a0
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, 0x91
mov dword [ebp + 4], esi
mov eax, dword [0x59f554]
test al, 1
jne 0x498b2d
or eax, 1
mov dword [0x59f554], eax
mov dword [ebp - 4], 0x15
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x597f88]
test byte [eax + 0x1c], 2
je 0x498b48
cmp byte [eax + 0x19], 6
jb 0x498b48
mov al, 1
jmp 0x498b4a
xor al, al
cmp byte [0x59f560], 0
jne 0x498b64
cmp byte [0x59f561], 0
jne 0x498b64
test al, al
je 0x498cc8
sub esp, 8
mov dword [ebp - 4], 0x16
lea ecx, [ebp - 0x140]
call fcn.0047b4d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 0x17
call fcn.004a1680
mov edx, eax
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x140]
call fcn.0047ee50
mov edx, str..installer.cpp
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
push 0x8d
mov ecx, eax
call fcn.0047b130
mov edx, 0x56b378
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x56b498
mov ecx, eax
call fcn.0047f0b0
mov edx, str.Install
mov ecx, eax
call fcn.0047f0b0
mov edx, 0x571fc8
mov ecx, eax
call fcn.0047f0b0
mov edx, str._with_result
mov ecx, eax
call fcn.0047f0b0
push esi
mov ecx, eax
call fcn.0047b2d0
mov byte [ebp - 4], 0x17
cmp dword [ebp + 0x34], 0x10
jb 0x498c18
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x498c18
push eax
call fcn.00507b54
add esp, 4
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x140]
call fcn.0047b620
mov edi, eax
mov byte [ebp - 4], 0x19
cmp dword [edi + 0x14], 0x10
jb 0x498c35
mov edi, dword [edi]
mov eax, dword [0x59f554]
test al, 1
jne 0x498c60
or eax, 1
mov dword [0x59f554], eax
mov byte [ebp - 4], 0x1a
call fcn.004a1290
push 0x54f080
call fcn.00507cdd
add esp, 4
mov byte [ebp - 4], 0x19
push edi
push 6
mov ecx, 0x59f560
call fcn.004a1510
cmp dword [ebp + 0x1c], 0x10
jb 0x498c83
mov eax, dword [ebp + 8]
test eax, eax
je 0x498c83
push eax
call fcn.00507b54
add esp, 4
lea ecx, [ebp - 0xf0]
mov dword [ebp + 0x1c], 0xf
mov dword [ebp + 0x18], 0
mov byte [ebp + 8], 0
mov byte [ebp - 4], 0x16
call fcn.0047b5a0
lea eax, [ebp - 0xf0]
mov dword [ebp - 0xf0], 0x56b700
push eax
call fcn.00528f2f
add esp, 4
jmp 0x498cc8
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 + 0x38]
xor ecx, ebp
call fcn.005072fd
lea esp, [ebp + 0x3c]
pop ebp
ret