Function at 0x100332e0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x1009ee34
mov eax, dword fs:[0]
push eax
sub esp, 0x574
mov eax, dword [0x100c230c]
xor eax, esp
mov dword [esp + 0x570], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x100c230c]
xor eax, esp
push eax
lea eax, [esp + 0x588]
mov dword fs:[0], eax
mov edi, dword [esp + 0x5a0]
mov eax, dword [esp + 0x5a4]
mov esi, dword [esp + 0x598]
xor ebp, ebp
cmp dword [esp + 0x59c], 1
mov ebx, edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x44], ebp
jne 0x100333a4
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x10033e82
mov edx, dword [ebx + 0x67e4]
push edx
lea eax, [esp + 0x490]
push eax
mov ecx, esi
call fcn.100569a0
mov dword [esp + 0x590], ebp
lea eax, [esp + 0x548]
mov ecx, edi
call fcn.10037750
mov dword [esp + 0x590], 0xffffffff
lea ecx, [esp + 0x48c]
push ecx
call fcn.10059890
mov eax, dword [edi + 0x18]
mov dword [esp + 0x50], eax
cmp eax, ebp
jbe 0x100333b7
mov dword [esp + 0x44], 1
mov eax, dword [edi + 0x14]
mov ebx, dword [edi]
mov ebp, dword [eax]
mov dword [esp + 0x38], 1
mov dword [esp + 0x20], ebx
mov esi, dword [edi + 0x14]
mov eax, dword [edi]
mov dword [esp + 0x24], ebp
test ebx, ebx
je 0x100333db
cmp ebx, eax
je 0x100333e0
call fcn.100759ec
cmp ebp, esi
je 0x10033e7e
test ebx, ebx
jne 0x100334c0
call fcn.100759ec
xor eax, eax
cmp ebp, dword [eax + 0x14]
jne 0x10033401
call fcn.100759ec
lea edx, [esp + 0x1f8]
lea edi, [ebp + 8]
push edx
call fcn.10033eb0
mov dword [esp + 0x590], 1
mov esi, 7
xor eax, eax
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d4], 0
mov word [esp + 0x1c4], ax
mov byte [esp + 0x590], 2
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x200]
lea ecx, [esp + 0x1c8]
call fcn.100073a0
cmp dword [esp + 0x1d4], 0
jne 0x100334c7
mov byte [esp + 0x590], 1
cmp dword [esp + 0x1d8], 8
jb 0x10033487
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.100755e2
add esp, 4
xor edx, edx
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d4], 0
mov word [esp + 0x1c4], dx
mov dword [esp + 0x590], 0xffffffff
lea eax, [esp + 0x1f8]
push eax
call fcn.10033f40
jmp 0x10033e56
mov eax, dword [ebx]
jmp 0x100333f7
mov eax, dword [esp + 0x1c4]
mov edi, 8
cmp dword [esp + 0x1d8], edi
jae 0x100334e3
lea eax, [esp + 0x1c4]
movzx ecx, word [eax]
push ecx
call fcn.10076e7b
add esp, 4
test eax, eax
jne 0x1003354d
mov byte [esp + 0x590], 1
cmp dword [esp + 0x1d8], edi
jb 0x10033514
mov edx, dword [esp + 0x1c4]
push edx
call fcn.100755e2
add esp, 4
xor eax, eax
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d4], 0
mov word [esp + 0x1c4], ax
mov dword [esp + 0x590], 0xffffffff
lea ecx, [esp + 0x1f8]
push ecx
call fcn.10033f40
jmp 0x10033e56
xor ebp, ebp
push 0xffffffffffffffff
xor edx, edx
push ebp
lea eax, [esp + 0x1c8]
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x1fc], esi
mov dword [esp + 0x1f8], ebp
mov word [esp + 0x1e8], dx
call fcn.100073a0
mov byte [esp + 0x590], 3
mov eax, dword [esp + 0x58]
cmp eax, ebp
je 0x100335af
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x38]
push ecx
push ebp
push edx
lea ecx, [esp + 0x1e8]
push ebx
push ecx
call eax
add esp, 0x14
inc ebx
mov dword [esp + 0x38], ebx
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x1e0]
push eax
mov ecx, 3
xor edx, edx
call fcn.10006760
mov byte [esp + 0x590], 4
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x1e4]
call fcn.100073a0
mov byte [esp + 0x590], 3
cmp dword [esp + 0xa0], edi
jb 0x10033603
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.100755e2
add esp, 4
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x1dc]
push eax
lea ecx, [esp + 0x84]
xor edx, edx
add ebx, 0x63fc
mov dword [esp + 0xa4], esi
push ecx
mov esi, ebx
mov dword [esp + 0xa4], ebp
mov word [esp + 0x94], dx
call fcn.100381c0
mov esi, dword [esp + 0x80]
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx]
cmp esi, ebp
je 0x10033650
cmp esi, eax
je 0x10033655
call fcn.100759ec
mov ebp, dword [esp + 0x84]
cmp ebp, edi
jne 0x1003383d
lea edx, [esp + 0xa4]
push edx
call fcn.10033fc0
mov byte [esp + 0x590], 5
mov ecx, dword [esp + 0x1e0]
or esi, 0xffffffff
mov edi, 8
mov dword [esp + 0xa4], esi
cmp dword [esp + 0x1f4], edi
jae 0x1003369f
lea ecx, [esp + 0x1e0]
call fcn.10033170
mov dword [esp + 0x30], eax
mov dword [esp + 0xa8], eax
call fcn.10032830
xor ebp, ebp
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x1e0]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x114], esi
mov dword [esp + 0x108], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x60], ebp
cmp dword [esp + 0x1f4], edi
jae 0x100336f9
lea eax, [esp + 0x1e0]
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x58]
push edx
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x48]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x10033730
mov eax, dword [esp + 0x34]
imul eax, dword [esp + 0x3c]
mov dword [esp + 0x118], eax
mov dword [esp + 0x1c], eax
cmp eax, ebp
jne 0x10033740
mov eax, 0x1000
mov dword [esp + 0x1c], eax
mov dword [esp + 0x118], eax
mov ecx, dword [esp + 0x1e0]
cmp dword [esp + 0x1f4], edi
jae 0x10033757
lea ecx, [esp + 0x1e0]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xa4]
push eax
push edx
call fcn.10032ad0
sub esp, 0x78
mov eax, esp
mov dword [esp + 0xa4], esp
push eax
lea edi, [esp + 0x120]
call fcn.100340b0
mov byte [esp + 0x608], 6
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0xbc], esp
push 0xffffffffffffffff
xor edx, edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebp
push ebp
lea eax, [esp + 0x278]
mov word [ecx + 4], dx
call fcn.100073a0
mov byte [esp + 0x624], 7
mov byte [esp + 0x624], 5
lea esi, [esp + 0x520]
call fcn.1003d8e0
add esp, 0x94
mov byte [esp + 0x590], 8
lea ecx, [esp + 0x12c]
push ecx
mov ecx, eax
call fcn.1003d2d0
mov byte [esp + 0x590], 9
lea edx, [esp + 0x120]
push edx
push ebx
lea ebx, [esp + 0x134]
call fcn.10038070
mov byte [esp + 0x590], 8
mov eax, ebx
push eax
call fcn.10034160
mov byte [esp + 0x590], 5
mov ecx, esi
push ecx
call fcn.10034160
mov byte [esp + 0x590], 3
mov edx, edi
push edx
call fcn.10034030
jmp 0x10033880
test esi, esi
jne 0x10033934
call fcn.100759ec
xor eax, eax
cmp ebp, dword [eax + 0x18]
jne 0x10033856
call fcn.100759ec
mov eax, dword [ebp + 0x9c]
mov dword [esp + 0x1c], eax
test esi, esi
jne 0x1003393b
call fcn.100759ec
cmp ebp, dword [esi + 0x18]
jne 0x10033877
call fcn.100759ec
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x30], ecx
xor ebp, ebp
lea edx, [esp + 0x68]
push edx
mov ebx, 7
or edi, 0xffffffff
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
call fcn.100614b0
mov byte [esp + 0x590], 0xa
push 0x20a
lea eax, [esp + 0x238]
push ebp
push eax
call fcn.10079c60
add esp, 0xc
push 0x34
lea ecx, [esp + 0x444]
push ebp
push ecx
call fcn.10079c60
add esp, 0xc
lea edx, [esp + 0x474]
push edx
call fcn.100614b0
mov byte [esp + 0x590], 0xb
cmp dword [esp + 0x1d8], 8
mov esi, dword [esp + 0x1c4]
jae 0x10033904
lea esi, [esp + 0x1c4]
lea eax, [esp + 0x234]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x10033942
movzx ecx, word [esi + eax]
cmp cx, bp
je 0x10033942
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x10033914
jmp 0x10033946
mov eax, dword [esi]
jmp 0x1003384c
mov esi, dword [esi]
jmp 0x1003386d
cmp edx, ebp
jne 0x10033949
sub eax, 2
xor edx, edx
mov word [eax], dx
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x1f8]
push ecx
lea edx, [esp + 0x6c]
push edx
push 1
mov dword [esp + 0x470], eax
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x60]
push eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x254]
push edx
push eax
call fcn.10032e20
mov esi, dword [esp + 0x4c]
cmp esi, 0x4000000
jbe 0x10033a55
mov byte [esp + 0x590], 0xa
lea ecx, [esp + 0x234]
push ecx
call fcn.100341e0
mov byte [esp + 0x590], 3
lea edx, [esp + 0x68]
push edx
call fcn.100376e0
mov byte [esp + 0x590], 2
mov esi, 8
cmp dword [esp + 0x1f4], esi
jb 0x100339f0
mov eax, dword [esp + 0x1e0]
push eax
call fcn.100755e2
add esp, 4
xor ecx, ecx
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x1f0], ebp
mov word [esp + 0x1e0], cx
mov byte [esp + 0x590], 1
cmp dword [esp + 0x1d8], esi
jb 0x10033a29
mov edx, dword [esp + 0x1c4]
push edx
call fcn.100755e2
add esp, 4
xor eax, eax
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1d4], ebp
mov word [esp + 0x1c4], ax
mov dword [esp + 0x590], edi
lea ecx, [esp + 0x1f8]
push ecx
jmp 0x10033e4d
cmp dword [esp + 0x1d8], 8
mov eax, dword [esp + 0x1c4]
jae 0x10033a6d
lea eax, [esp + 0x1c4]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
cmp ecx, edi
jne 0x10033b30
mov byte [esp + 0x590], 0xa
lea edx, [esp + 0x234]
push edx
call fcn.100341e0
mov byte [esp + 0x590], 3
lea eax, [esp + 0x68]
push eax
call fcn.100376e0
mov byte [esp + 0x590], 2
mov esi, 8
cmp dword [esp + 0x1f4], esi
jb 0x10033acb
mov ecx, dword [esp + 0x1e0]
push ecx
call fcn.100755e2
add esp, 4
xor edx, edx
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x1f0], ebp
mov word [esp + 0x1e0], dx
mov byte [esp + 0x590], 1
cmp dword [esp + 0x1d8], esi
jb 0x10033b04
mov eax, dword [esp + 0x1c4]
push eax
call fcn.100755e2
add esp, 4
xor ecx, ecx
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x1d4], ebp
mov word [esp + 0x1c4], cx
mov dword [esp + 0x590], edi
lea edx, [esp + 0x1f8]
push edx
jmp 0x10033e4d
mov ebx, ecx
and ebx, 0x10
je 0x10033ba1
cmp dword [esp + 0x30], 5
je 0x10033ba1
mov byte [esp + 0x590], 0xa
lea eax, [esp + 0x234]
push eax
call fcn.100341e0
mov byte [esp + 0x590], 3
lea ecx, [esp + 0x68]
push ecx
call fcn.100376e0
mov byte [esp + 0x590], 2
lea esi, [esp + 0x1dc]
call fcn.100531f0
mov byte [esp + 0x590], 1
lea esi, [esp + 0x1c0]
call fcn.100531f0
mov dword [esp + 0x590], edi
lea edx, [esp + 0x1f8]
push edx
jmp 0x10033e4d
test ecx, 0x800
je 0x10033bba
xor edx, edx
mov eax, esi
div dword [esp + 0x1c]
cmp edx, ebp
jbe 0x10033bb6
inc eax
mov ebp, eax
jmp 0x10033bbe
mov ebp, dword [esp + 0x48]
xor edi, edi
cmp ebx, edi
jne 0x10033c48
xor edx, edx
mov eax, esi
div dword [esp + 0x1c]
cmp edx, edi
jne 0x10033bdc
cmp eax, ebp
jne 0x10033be1
cmp edx, edi
je 0x10033c48
inc eax
cmp eax, ebp
je 0x10033c48
mov byte [esp + 0x590], 0xa
lea eax, [esp + 0x234]
push eax
call fcn.100341e0
mov byte [esp + 0x590], 3
lea ecx, [esp + 0x68]
push ecx
call fcn.100376e0
mov byte [esp + 0x590], 2
lea esi, [esp + 0x1dc]
call fcn.100531f0
mov byte [esp + 0x590], 1
lea esi, [esp + 0x1c0]
call fcn.100531f0
mov dword [esp + 0x590], 0xffffffff
lea edx, [esp + 0x1f8]
push edx
jmp 0x10033e4d
mov eax, dword [esp + 0x40]
mov dword [esp + 0x448], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x44c], ebp
mov dword [esp + 0x444], esi
call fcn.100328b0
mov dword [esp + 0x450], eax
mov edx, dword [esp + 0x230]
mov dword [esp + 0x468], edx
mov edx, dword [esp + 0x224]
sub edx, dword [esp + 0x220]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x460], ecx
mov ecx, dword [esp + 0x22c]
sar edx, 3
mov dword [esp + 0x458], edi
mov dword [esp + 0x45c], edi
mov dword [esp + 0x46c], ecx
mov dword [esp + 0x470], edx
cmp eax, 8
jne 0x10033cd5
mov dword [esp + 0x440], 1
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
sar eax, 4
test eax, eax
jbe 0x10033cf5
lea ecx, [esp + 0x68]
push ecx
lea eax, [esp + 0x478]
call fcn.10037890
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1dc]
push edx
add eax, 0x63fc
push eax
call fcn.10037ee0
mov esi, eax
mov edi, dword [esi + 0x1c]
mov ecx, dword [edi + 4]
add esi, 8
lea eax, [esp + 0x234]
push eax
push ecx
push edi
call fcn.1003ad60
mov ecx, esi
mov ebx, eax
call fcn.1003ae10
mov dword [edi + 4], ebx
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 4]
lea edx, [esp + 0x1dc]
push edx
add edi, 0x63fc
push edi
mov dword [eax], ebx
call fcn.10037ee0
mov esi, dword [eax + 0x64]
lea eax, [esp + 0x1dc]
push eax
push edi
add esi, ebp
call fcn.10037ee0
mov ebx, dword [esp + 0x18]
mov dword [eax + 0x64], esi
mov esi, dword [ebx + 0x6c14]
mov edx, dword [esi + 4]
add ebx, 0x6c00
lea ecx, [esp + 0x234]
push ecx
push edx
push esi
call fcn.1003ad60
mov ecx, ebx
mov edi, eax
call fcn.1003ae10
mov dword [esi + 4], edi
mov eax, dword [edi + 4]
mov dword [eax], edi
mov byte [esp + 0x590], 0xa
lea eax, [esp + 0x234]
push eax
call fcn.100341e0
mov byte [esp + 0x590], 3
lea ecx, [esp + 0x68]
push ecx
call fcn.100376e0
mov byte [esp + 0x590], 2
cmp dword [esp + 0x1f4], 8
jb 0x10033de1
mov edx, dword [esp + 0x1e0]
push edx
call fcn.100755e2
add esp, 4
mov esi, 7
xor edi, edi
xor eax, eax
mov dword [esp + 0x1f4], esi
mov dword [esp + 0x1f0], edi
mov word [esp + 0x1e0], ax
mov byte [esp + 0x590], 1
cmp dword [esp + 0x1d8], 8
jb 0x10033e22
mov ecx, dword [esp + 0x1c4]
push ecx
call fcn.100755e2
add esp, 4
xor edx, edx
mov dword [esp + 0x1d8], esi
mov dword [esp + 0x1d4], edi
mov word [esp + 0x1c4], dx
mov dword [esp + 0x590], 0xffffffff
lea eax, [esp + 0x1f8]
push eax
call fcn.10033f40
mov ebx, dword [esp + 0x20]
test ebx, ebx
jne 0x10033e7a
call fcn.100759ec
xor eax, eax
mov esi, dword [esp + 0x24]
cmp esi, dword [eax + 0x14]
jne 0x10033e6f
call fcn.100759ec
mov ebp, dword [esi]
mov edi, dword [esp + 0x5c]
jmp 0x100333ca
mov eax, dword [ebx]
jmp 0x10033e61
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x588]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x570]
xor ecx, esp
call fcn.100755ed
add esp, 0x580
ret 0x10