Function at 0x42b910
Capabilities:
Check if file exists
Get common file path
Get startup folder

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fd746
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3c0
mov eax, dword [0x53000c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x3cc], esi
mov dword [ebp - 0x3c8], esi
xor eax, eax
mov dword [ebp - 0x3c8], esi
mov dword [ebp - 0x3d0], 0
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x290], 7
mov word [ebp - 0x2a4], ax
push 0x208
push eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x220]
push eax
call fcn.004bcaf0
add esp, 0xc
lea eax, [ebp - 0x220]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x42baf0
xor eax, eax
mov dword [ebp - 0x264], 0
lea ecx, [ebp - 0x220]
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42b9e5
sub ecx, edx
lea eax, [ebp - 0x220]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x274]
call fcn.0041a5b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x274]
cmp dword [0x53c110], 8
mov eax, 0x53c0fc
push dword [0x53c10c]
cmovae eax, dword [0x53c0fc]
push eax
call fcn.0041a710
cmp dword [ebp - 0x260], 8
lea eax, [ebp - 0x274]
cmovae eax, dword [ebp - 0x274]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42ba8f
movups xmm0, xmmword [ebp - 0x274]
xor eax, eax
mov word [ebp - 0x274], ax
movups xmmword [ebp - 0x25c], xmm0
movq xmm0, qword [ebp - 0x264]
movq qword [ebp - 0x24c], xmm0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 7
jmp 0x42bb1e
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x260]
cmp edx, 8
jb 0x42bad3
mov ecx, dword [ebp - 0x274]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bac9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push edx
push ecx
call fcn.0048e9ad
add esp, 8
xor eax, eax
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 7
mov word [ebp - 0x274], ax
xor eax, eax
mov dword [ebp - 0x24c], 0
push eax
push 0x51c79c
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x248], 7
mov word [ebp - 0x25c], ax
call fcn.0041a5b0
push 0xb8
lea eax, [ebp - 0x3c0]
mov byte [ebp - 4], 2
push 0
push eax
call fcn.004bcaf0
cmp dword [ebp - 0x248], 8
lea eax, [ebp - 0x25c]
lea ecx, [ebp - 0x3c0]
cmovae eax, dword [ebp - 0x25c]
push eax
call fcn.0042cb50
xor eax, eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x364], eax
jne 0x42bc32
push eax
mov dword [esi + 0x10], eax
mov ecx, esi
mov dword [esi + 0x14], 7
push 0x51c79c
mov word [esi], ax
call fcn.0041a5b0
lea ecx, [ebp - 0x3c0]
call fcn.0042cac0
mov edx, dword [ebp - 0x248]
cmp edx, 8
jb 0x42bbcc
mov ecx, dword [ebp - 0x25c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bbc2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca7e
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov edx, dword [ebp - 0x290]
xor eax, eax
mov dword [ebp - 0x24c], 0
mov dword [ebp - 0x248], 7
mov word [ebp - 0x25c], ax
cmp edx, 8
jb 0x42c8ef
mov ecx, dword [ebp - 0x2a4]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bc23
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca83
push edx
push ecx
call fcn.0048e9ad
add esp, 8
jmp 0x42c8ef
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2d8], 7
mov word [ebp - 0x2ec], ax
xor eax, eax
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2c0], 7
mov word [ebp - 0x2d4], ax
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x2a8], 7
mov word [ebp - 0x2bc], ax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2f0], 7
mov word [ebp - 0x304], ax
mov dword [ebp - 0x3c8], 4
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x3c0]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax - 0x390]
mov byte [ebp - 4], 8
mov ecx, dword [eax + 4]
mov dword [ebp - 0x224], ecx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x228]
mov byte [ebp - 4], 9
push eax
call fcn.0042e250
add esp, 4
mov ecx, eax
mov edx, dword [eax]
push 0xa
mov eax, dword [edx + 0x30]
call eax
movzx esi, ax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x224]
test ecx, ecx
je 0x42bd14
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
test eax, eax
je 0x42bd14
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
push esi
lea edx, [ebp - 0x304]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3c0]
call fcn.0042e410
add esp, 4
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x42c1d2
xorps xmm0, xmm0
mov dword [ebp - 0x260], 0
movq qword [ebp - 0x268], xmm0
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
movq qword [ebp - 0x238], xmm0
mov dword [ebp - 0x230], 0
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x28c]
push 1
xor eax, eax
mov dword [ebp - 0x27c], 0
push 0x51f4c4
mov dword [ebp - 0x278], 7
mov word [ebp - 0x28c], ax
call fcn.0041a5b0
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 0xd
push eax
lea edx, [ebp - 0x28c]
lea ecx, [ebp - 0x304]
call fcn.0042dd00
mov byte [ebp - 4], 0xc
add esp, 4
mov edx, dword [ebp - 0x278]
cmp edx, 8
jb 0x42be36
mov ecx, dword [ebp - 0x28c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42be2c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov ecx, dword [ebp - 0x234]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x238]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jne 0x42bf7d
cmp dword [esi + 0x14], 8
mov edi, esi
jb 0x42be68
mov edi, dword [esi]
cmp dword [esi + 0x10], 0xa
jne 0x42bebd
mov ecx, 0x51f4c8
mov edx, 0xa
sub edi, ecx
nop word [eax + eax]
mov ax, word [edi + ecx]
cmp ax, word [ecx]
jne 0x42bebd
add ecx, 2
sub edx, 1
jne 0x42be80
lea eax, [esi + 0x18]
lea ecx, [ebp - 0x2ec]
cmp ecx, eax
je 0x42bebd
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x42bea8
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2ec]
call fcn.0041a5b0
mov esi, dword [ebp - 0x238]
cmp dword [esi + 0x14], 8
mov edi, esi
jb 0x42bec7
mov edi, dword [esi]
cmp dword [esi + 0x10], 4
jne 0x42bf1d
mov ecx, str.Path
mov edx, 4
sub edi, ecx
nop dword [eax]
mov ax, word [ecx + edi]
cmp ax, word [ecx]
jne 0x42bf1d
add ecx, 2
sub edx, 1
jne 0x42bee0
lea eax, [esi + 0x18]
lea ecx, [ebp - 0x2bc]
cmp ecx, eax
je 0x42bf1d
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x42bf08
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2bc]
call fcn.0041a5b0
mov esi, dword [ebp - 0x238]
cmp dword [esi + 0x14], 8
mov edi, esi
jb 0x42bf27
mov edi, dword [esi]
cmp dword [esi + 0x10], 7
jne 0x42bf7d
mov ecx, str.Default
mov edx, 7
sub edi, ecx
nop dword [eax]
mov ax, word [ecx + edi]
cmp ax, word [ecx]
jne 0x42bf7d
add ecx, 2
sub edx, 1
jne 0x42bf40
lea eax, [esi + 0x18]
lea ecx, [ebp - 0x2d4]
cmp ecx, eax
je 0x42bf7d
cmp dword [eax + 0x14], 8
mov ecx, eax
jb 0x42bf68
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2d4]
call fcn.0041a5b0
mov esi, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x234]
mov eax, 0x2aaaaaab
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jne 0x42c038
xor eax, eax
mov dword [ebp - 0x27c], 0
mov ecx, 8
mov dword [ebp - 0x278], 7
cmp dword [esi + 0x10], ecx
mov word [ebp - 0x28c], ax
cmovb ecx, dword [esi + 0x10]
cmp dword [esi + 0x14], 8
jb 0x42bfd0
mov esi, dword [esi]
push ecx
push esi
lea ecx, [ebp - 0x28c]
call fcn.0041a5b0
or dword [ebp - 0x3c8], 0xa
lea esi, [ebp - 0x28c]
cmp dword [ebp - 0x278], 8
mov edi, dword [ebp - 0x28c]
cmovae esi, edi
cmp dword [ebp - 0x27c], 8
jne 0x42c030
mov ecx, str._Profile
mov edx, 8
sub esi, ecx
nop
mov ax, word [ecx + esi]
cmp ax, word [ecx]
jne 0x42c030
add ecx, 2
sub edx, 1
jne 0x42c010
mov esi, dword [ebp - 0x238]
mov byte [ebp - 0x3c1], 1
jmp 0x42c045
mov esi, dword [ebp - 0x238]
jmp 0x42c03e
mov edi, dword [ebp - 0x28c]
mov byte [ebp - 0x3c1], 0
mov eax, dword [ebp - 0x3c8]
test al, 2
je 0x42c098
and eax, 0xfffffffd
mov dword [ebp - 0x3c8], eax
mov eax, dword [ebp - 0x278]
cmp eax, 8
jb 0x42c098
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x42c088
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push ecx
push edi
call fcn.0048e9ad
mov esi, dword [ebp - 0x238]
add esp, 8
cmp byte [ebp - 0x3c1], 0
je 0x42c140
cmp dword [ebp - 0x2c0], 8
lea edi, [ebp - 0x2d4]
cmovae edi, dword [ebp - 0x2d4]
cmp dword [ebp - 0x2c4], 1
jne 0x42c140
mov ecx, 0x51f504
mov edx, 1
sub edi, ecx
nop
mov ax, word [ecx + edi]
cmp ax, word [ecx]
jne 0x42c140
add ecx, 2
sub edx, 1
jne 0x42c0d0
cmp dword [ebp - 0x2d8], 8
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2dc], edx
cmovae eax, dword [ebp - 0x2ec]
xor ecx, ecx
cmp dword [ebp - 0x2a8], 8
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2c4], ecx
mov word [eax], cx
lea eax, [ebp - 0x2bc]
cmovae eax, dword [ebp - 0x2bc]
cmp dword [ebp - 0x2c0], 8
mov word [eax], cx
lea eax, [ebp - 0x2d4]
cmovae eax, dword [ebp - 0x2d4]
mov word [eax], cx
mov esi, dword [ebp - 0x238]
mov byte [ebp - 4], 0xb
test esi, esi
je 0x42bcb0
lea eax, [ebp - 0x238]
push eax
push dword [ebp - 0x234]
push esi
call fcn.0041b670
mov ecx, dword [ebp - 0x230]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x238]
add esp, 0xc
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x42c1a5
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push ecx
push esi
call fcn.0048e9ad
add esp, 8
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 0
jmp 0x42bcb0
cmp dword [ebp - 0x2a8], 8
lea eax, [ebp - 0x2bc]
push dword [ebp - 0x2ac]
cmovae eax, dword [ebp - 0x2bc]
lea ecx, [ebp - 0x2a4]
push eax
call fcn.0041a5b0
cmp dword [ebp - 0x2d8], 8
lea esi, [ebp - 0x2ec]
mov edi, dword [ebp - 0x2ec]
cmovae esi, edi
cmp dword [ebp - 0x2dc], 1
jne 0x42c339
mov ecx, 0x51f504
mov edx, 1
sub esi, ecx
nop word [eax + eax]
mov ax, word [ecx + esi]
cmp ax, word [ecx]
jne 0x42c339
add ecx, 2
sub edx, 1
jne 0x42c230
cmp dword [ebp - 0x248], 8
lea ecx, [ebp - 0x25c]
mov edx, dword [ebp - 0x24c]
cmovae ecx, dword [ebp - 0x25c]
push 1
push 0x51c798
push 0xffffffffffffffff
call fcn.0041b170
add esp, 0xc
lea ecx, [eax + 1]
cmp dword [ebp - 0x24c], ecx
jb 0x42ca88
cmp dword [ebp - 0x248], 8
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x24c], ecx
cmovae eax, dword [ebp - 0x25c]
xor edx, edx
mov word [eax + ecx*2], dx
lea eax, [ebp - 0x2bc]
push eax
lea eax, [ebp - 0x25c]
push eax
lea eax, [ebp - 0x28c]
push eax
call fcn.0041aa80
mov esi, eax
add esp, 0xc
lea eax, [ebp - 0x2a4]
cmp eax, esi
je 0x42c2f9
mov ecx, eax
call fcn.0041a210
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [ebp - 0x2a4], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x294], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x278]
cmp edx, 8
jb 0x42c339
mov ecx, dword [ebp - 0x28c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c32f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca8d
push edx
push ecx
call fcn.0048e9ad
add esp, 8
cmp dword [0x53c128], 8
lea ecx, [ebp - 0x2a4]
push dword [0x53c124]
mov eax, 0x53c114
cmovae eax, dword [0x53c114]
push eax
call fcn.0041a710
cmp dword [ebp - 0x290], 8
lea eax, [ebp - 0x2a4]
cmovae eax, dword [ebp - 0x2a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42c87c
push 0xb8
lea eax, [ebp - 0xd0]
push 0
push eax
call fcn.004bcaf0
cmp dword [ebp - 0x290], 8
lea eax, [ebp - 0x2a4]
lea ecx, [ebp - 0xd0]
cmovae eax, dword [ebp - 0x2a4]
push eax
call fcn.0042cb50
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x74], 0
jne 0x42c544
mov esi, dword [ebp - 0x3cc]
mov ecx, esi
push 0x51c79c
call fcn.0041a2b0
lea ecx, [ebp - 0xd0]
call fcn.0042cac0
mov edx, dword [ebp - 0x2f0]
cmp edx, 8
jb 0x42c41f
mov ecx, dword [ebp - 0x304]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c415
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca92
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov edx, dword [ebp - 0x2a8]
xor eax, eax
mov dword [ebp - 0x2f4], 0
mov dword [ebp - 0x2f0], 7
mov word [ebp - 0x304], ax
cmp edx, 8
jb 0x42c47c
mov ecx, dword [ebp - 0x2bc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c472
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca97
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov eax, dword [ebp - 0x2c0]
cmp eax, 8
jb 0x42c4bc
mov edx, dword [ebp - 0x2d4]
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x42c4b2
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca9c
push ecx
push edx
call fcn.0048e9ad
add esp, 8
mov eax, dword [ebp - 0x2d8]
cmp eax, 8
jb 0x42c4f6
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x42c4ec
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42caa1
push ecx
push edi
call fcn.0048e9ad
add esp, 8
lea ecx, [ebp - 0x3c0]
call fcn.0042cac0
mov edx, dword [ebp - 0x248]
cmp edx, 8
jb 0x42bbcc
mov ecx, dword [ebp - 0x25c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bbc2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42caa6
jmp 0x42bbc2
xor eax, eax
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 7
mov word [ebp - 0x28c], ax
lea edx, [ebp - 0x28c]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xd0]
call fcn.0042dfb0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
jne 0x42c862
nop word [eax + eax]
xorps xmm0, xmm0
mov dword [ebp - 0x260], 0
movq qword [ebp - 0x268], xmm0
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
movq qword [ebp - 0x22c], xmm0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x244]
push 1
xor eax, eax
mov dword [ebp - 0x234], 0
push 0x51f4c4
mov dword [ebp - 0x230], 7
mov word [ebp - 0x244], ax
call fcn.0041a5b0
lea eax, [ebp - 0x22c]
mov byte [ebp - 4], 0x12
push eax
lea edx, [ebp - 0x244]
lea ecx, [ebp - 0x28c]
call fcn.0042dd00
mov byte [ebp - 4], 0x11
add esp, 4
mov edx, dword [ebp - 0x230]
cmp edx, 8
jb 0x42c689
mov ecx, dword [ebp - 0x244]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c67f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov edi, dword [ebp - 0x228]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x22c]
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jne 0x42c7b9
cmp dword [esi + 0x14], 8
mov edi, esi
jb 0x42c6bd
mov edi, dword [esi]
cmp dword [esi + 0x10], 0xa
jne 0x42c6e5
mov ecx, 0x51f508
mov edx, 0xa
sub edi, ecx
nop
mov ax, word [ecx + edi]
cmp ax, word [ecx]
jne 0x42c6e5
add ecx, 2
sub edx, 1
jne 0x42c6d0
mov al, 1
jmp 0x42c6e7
xor al, al
test al, al
je 0x42c7b3
lea eax, [esi + 0x18]
push eax
lea ecx, [ebp - 0x244]
call fcn.0041a300
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x244]
mov edi, dword [ebp - 0x230]
cmp edi, 8
mov edx, dword [ebp - 0x234]
cmovae ecx, dword [ebp - 0x244]
push 1
push 0x51c798
push 0xffffffffffffffff
call fcn.0041b170
add esp, 0xc
lea ecx, [eax + 1]
cmp dword [ebp - 0x234], ecx
jb 0x42ca88
cmp edi, 8
mov dword [ebp - 0x234], ecx
lea eax, [ebp - 0x244]
cmovae eax, dword [ebp - 0x244]
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, 0x53c12c
cmp dword [0x53c140], 8
lea ecx, [ebp - 0x244]
push dword [0x53c13c]
cmovae eax, dword [0x53c12c]
push eax
call fcn.0041a710
cmp dword [ebp - 0x230], 8
lea eax, [ebp - 0x244]
cmovae eax, dword [ebp - 0x244]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42c90f
lea ecx, [ebp - 0x244]
call fcn.0041a210
mov esi, dword [ebp - 0x22c]
mov edi, dword [ebp - 0x228]
mov byte [ebp - 4], 0x10
test esi, esi
je 0x42c83d
lea eax, [ebp - 0x22c]
push eax
push edi
push esi
call fcn.0041b670
mov ecx, dword [ebp - 0x224]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x22c]
add esp, 0xc
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x42c815
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42ca79
push ecx
push esi
call fcn.0048e9ad
add esp, 8
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
lea edx, [ebp - 0x28c]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xd0]
call fcn.0042dfb0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
test byte [ecx + eax + 0xc], 6
je 0x42c590
lea ecx, [ebp - 0x28c]
call fcn.0041a210
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 7
call fcn.0042cac0
mov esi, dword [ebp - 0x3cc]
xor eax, eax
push eax
push 0x51c79c
mov ecx, esi
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
call fcn.0041a5b0
lea ecx, [ebp - 0x304]
call fcn.0041a210
lea ecx, [ebp - 0x2bc]
call fcn.0041a210
lea ecx, [ebp - 0x2d4]
call fcn.0041a210
lea ecx, [ebp - 0x2ec]
call fcn.0041a210
lea ecx, [ebp - 0x3c0]
call fcn.0042cac0
lea ecx, [ebp - 0x25c]
call fcn.0041a210
lea ecx, [ebp - 0x2a4]
call fcn.0041a210
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048e99c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov edi, dword [ebp - 0x3cc]
lea eax, [ebp - 0x244]
push eax
mov ecx, edi
call fcn.0041b9b0
mov edx, dword [ebp - 0x230]
cmp edx, 8
jb 0x42c963
mov ecx, dword [ebp - 0x244]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c959
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42caab
push edx
push ecx
call fcn.0048e9ad
add esp, 8
mov ecx, dword [ebp - 0x22c]
xor eax, eax
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 7
mov word [ebp - 0x244], ax
test ecx, ecx
je 0x42ca0f
lea eax, [ebp - 0x22c]
push eax
push dword [ebp - 0x228]
push ecx
call fcn.0041b670
mov ecx, dword [ebp - 0x224]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x22c]
add esp, 0xc
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x42c9e7
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42cab0
push ecx
push esi
call fcn.0048e9ad
add esp, 8
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
lea ecx, [ebp - 0x28c]
call fcn.0041a210
lea ecx, [ebp - 0xd0]
call fcn.0042cac0
lea ecx, [ebp - 0x304]
call fcn.0041a210
lea ecx, [ebp - 0x2bc]
call fcn.0041a210
lea ecx, [ebp - 0x2d4]
call fcn.0041a210
lea ecx, [ebp - 0x2ec]
call fcn.0041a210
lea ecx, [ebp - 0x3c0]
call fcn.0042cac0
lea ecx, [ebp - 0x25c]
call fcn.0041a210
lea ecx, [ebp - 0x2a4]
call fcn.0041a210
mov eax, edi
jmp 0x42c8f1
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.0041a880
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
call fcn.004c5929
int3