Function at 0x42df20
Capabilities:
Check if file exists
Encode data using xor
Get memory capacity
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x69c802
mov eax, dword fs:[0]
push eax
sub esp, 0x4bc
mov eax, dword [0x76f950]
xor eax, esp
mov dword [esp + 0x4b4], eax
push esi
push edi
mov eax, dword [0x76f950]
xor eax, esp
push eax
lea eax, [esp + 0x4c8]
mov dword fs:[0], eax
xor cl, cl
call fcn.00430c50
mov byte [esp + 0xf], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x4d0], 0
lea edx, [esp + 0x1c]
mov ecx, str._cpucorelimit
call fcn.004312a0
test al, al
je 0x42dfee
lea ecx, [esp + 0x1c]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x10], esi
mov byte [esp + 0x4d0], 1
push 0x6e3e98
lea ecx, [esp + 0x14]
call fcn.00406ae0
movzx ecx, byte [esp + 0xf]
xor edx, edx
test al, al
cmovne ecx, edx
mov dword [esp + 0x14], ecx
mov byte [esp + 0x4d0], dl
test esi, esi
je 0x42dfe6
mov eax, dword [esi]
test eax, eax
jne 0x42dfe3
mov ecx, esi
call fcn.004df580
mov ecx, dword [esp + 0x14]
jmp 0x42dfe6
dec eax
mov dword [esi], eax
test cl, cl
je 0x42e06f
call fcn.006351bb
cmp eax, 0x1f
jle 0x42e06f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0
push 0x1fffff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
push 0x7fffffff
push edi
call dword [sym.imp.KERNEL32.dll_SetProcessAffinityMask]
test eax, eax
jne 0x42e068
call fcn.004df4c0
mov esi, eax
push 0xffffffffffffffff
push str.Faild_to_set_process_affinity.
mov ecx, esi
call fcn.0040bb30
mov dword [esp + 0x10], esi
mov byte [esp + 0x4d0], 2
xor dl, dl
lea ecx, [esp + 0x10]
call fcn.004e14a0
mov byte [esp + 0x4d0], 0
test esi, esi
je 0x42e068
mov eax, dword [esi]
test eax, eax
jne 0x42e065
mov ecx, esi
call fcn.004df580
jmp 0x42e068
dec eax
mov dword [esi], eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp + 0x4d0], 0xffffffff
lea ecx, [esp + 0x1c]
call fcn.004dd7c0
call fcn.0042d6b0
push 0x3c
lea eax, [esp + 0x6c]
push 0
push eax
mov dword [esp + 0x70], 0x40
call fcn.0063ac00
add esp, 0xc
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov edx, dword [0x77b0b4]
mov cl, byte [0x77b0b8]
xor esi, esi
lea ebx, [ebx]
xor cl, byte [esp + esi + 0x64]
lea eax, [edx + 1]
xor byte [edx + 0x77b0c0], cl
xor cl, byte [esp + esi + 0x65]
and eax, 0xfff
inc eax
xor byte [eax + 0x77b0bf], cl
xor cl, byte [esp + esi + 0x66]
and eax, 0xfff
inc eax
xor byte [eax + 0x77b0bf], cl
xor cl, byte [esp + esi + 0x67]
and eax, 0xfff
add esi, 4
xor byte [eax + 0x77b0c0], cl
lea edx, [eax + 1]
and edx, 0xfff
cmp esi, 0x40
jl 0x42e0c0
movzx eax, byte [esp + 0x64]
and eax, 1
add eax, edx
and eax, 0xfff
mov dword [0x77b0b4], eax
mov eax, dword [esp + 0x6c]
mov dword [0x77a698], eax
mov eax, dword [esp + 0x70]
mov byte [0x77b0b8], cl
sub esp, 8
lea ecx, [esp + 0x54]
mov dword [0x77a69c], eax
call fcn.00429c90
add esp, 8
mov esi, eax
mov dword [esp + 0x4d0], 3
cmp dword [esi + 0x14], 8
jb 0x42e15d
mov esi, dword [esi]
test esi, esi
jne 0x42e165
xor edi, edi
jmp 0x42e180
cmp word [esi], 0
jne 0x42e16f
xor edi, edi
jmp 0x42e180
call fcn.004df4c0
mov edi, eax
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.0040bb30
mov dword [esp + 0x10], edi
mov byte [esp + 0x4d0], 5
cmp dword [esp + 0x60], 8
jb 0x42e19f
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
mov edx, dword [0x788c38]
xor eax, eax
mov word [esp + 0x4c], ax
mov eax, dword [0x788c3c]
test eax, eax
cmovne edx, eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x64], 7
mov dword [esp + 0x60], 0
call fcn.00452570
add esp, 4
mov byte [esp + 0x4d0], 6
mov dl, 1
mov ecx, eax
call fcn.004e14a0
mov byte [esp + 0x4d0], 5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42e20a
mov ecx, dword [eax]
test ecx, ecx
jne 0x42e207
mov ecx, eax
call fcn.004df580
jmp 0x42e20a
dec ecx
mov dword [eax], ecx
mov dword [esp + 0x24], 0
mov byte [esp + 0x4d0], 7
lea edx, [esp + 0x1c]
mov ecx, str._memusage
call fcn.004312a0
test al, al
je 0x42e27e
lea ecx, [esp + 0x1c]
call fcn.004181e0
mov esi, eax
mov dword [esp + 0x14], esi
mov byte [esp + 0x4d0], 8
push 0x6e3ef4
lea ecx, [esp + 0x18]
call fcn.00406ae0
test al, al
je 0x42e260
xorps xmm0, xmm0
movlpd qword [0x77a698], xmm0
mov byte [esp + 0x4d0], 7
test esi, esi
je 0x42e27e
mov eax, dword [esi]
test eax, eax
jne 0x42e27b
mov ecx, esi
call fcn.004df580
jmp 0x42e27e
dec eax
mov dword [esi], eax
mov ecx, dword [0x77a69c]
mov eax, dword [0x77a698]
test ecx, ecx
ja 0x42e2e9
jb 0x42e296
cmp eax, 0x2400000
ja 0x42e2a3
xorps xmm0, xmm0
movlpd qword [0x77a698], xmm0
jmp 0x42e2b0
test ecx, ecx
ja 0x42e2e9
jb 0x42e2b0
cmp eax, 0x3000000
jae 0x42e2c8
mov eax, dword [0x772cc4]
xor ecx, ecx
test eax, eax
mov dword [0x771714], ecx
mov byte [0x77c304], 1
jmp 0x42e2e1
test ecx, ecx
ja 0x42e2e9
jb 0x42e2d5
cmp eax, 0x4000000
jae 0x42e2e9
mov eax, dword [0x772cc4]
mov ecx, 4
cmp eax, ecx
cmovg eax, ecx
mov dword [0x772cc4], eax
mov byte [esp + 0x4d0], 5
lea ecx, [esp + 0x1c]
call fcn.004dd7c0
mov dword [esp + 0x4d0], 0xffffffff
test edi, edi
je 0x42e31b
mov eax, dword [edi]
test eax, eax
jne 0x42e318
mov ecx, edi
call fcn.004df580
jmp 0x42e31b
dec eax
mov dword [edi], eax
push 0x6e3efc
push str.___TVPSystemSecurityOptions_disablemsgmap_1_:forcedataxp3_2_:acceptfilenameargument_0____
mov byte [esp + 0x15], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
call fcn.00634950
add esp, 8
test eax, eax
je 0x42e355
cmp byte [eax + 0xc], 0x28
jne 0x42e355
cmp byte [eax + 0xe], 0x29
jne 0x42e355
movsx esi, byte [eax + 0xd]
sub esi, 0x30
jmp 0x42e357
xor esi, esi
push 0x6e3f0c
push str.___TVPSystemSecurityOptions_disablemsgmap_1_:forcedataxp3_2_:acceptfilenameargument_0____
mov dword [esp + 0x1c], esi
call fcn.00634950
add esp, 8
test eax, eax
je 0x42e386
cmp byte [eax + 0x16], 0x28
jne 0x42e386
cmp byte [eax + 0x18], 0x29
jne 0x42e386
movsx eax, byte [eax + 0x17]
sub eax, 0x30
jmp 0x42e388
xor eax, eax
mov edi, dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
setne al
test esi, esi
jne 0x42e8a1
test al, al
jne 0x42e5d0
xor edx, edx
mov ecx, str._nosel
call fcn.004312a0
test al, al
jne 0x42e672
xor edx, edx
mov ecx, 0x6e3f34
call fcn.004312a0
test al, al
jne 0x42e672
lea ecx, [esp + 0x64]
call fcn.0043eba0
mov dword [esp + 0x4d0], 9
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00420a00
mov byte [esp + 0x4d0], 0xa
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00420900
mov byte [esp + 0x4d0], 0xb
cmp dword [eax + 0x14], 8
jb 0x42e40d
mov eax, dword [eax]
mov edx, eax
lea ecx, [esp + 0x2b4]
call fcn.00496890
mov byte [esp + 0x4d0], 0xa
lea ecx, [esp + 0x4c]
call fcn.0040aca0
mov byte [esp + 0x4d0], 9
lea ecx, [esp + 0x1c]
call fcn.0040aca0
mov dword [esp + 0x4d0], 0xffffffff
lea ecx, [esp + 0x64]
call fcn.0040aca0
mov edx, dword [0x77a6cc]
mov esi, 1
mov dword [esp + 0x10], esi
cmp edx, esi
jle 0x42e5cc
jmp 0x42e470
mov eax, dword [0x77a6d0]
mov eax, dword [eax + esi*4]
mov cl, byte [eax]
cmp cl, 0x2d
jne 0x42e497
cmp byte [eax + 1], cl
jne 0x42e48e
cmp byte [eax + 2], 0
je 0x42e5cc
cmp cl, 0x2d
je 0x42e5bf
lea eax, [esp + 0x2b4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [0x77a6d0]
mov edi, dword [eax + esi*4]
test edi, edi
jne 0x42e4b5
xor esi, esi
jmp 0x42e4cd
cmp byte [edi], 0
jne 0x42e4be
xor esi, esi
jmp 0x42e4cd
call fcn.004df4c0
mov esi, eax
push edi
mov ecx, esi
call fcn.004177e0
mov dword [esp + 0x18], esi
mov dword [esp + 0x4d0], 0xc
test esi, esi
je 0x42e4ec
mov eax, dword [esi + 4]
test eax, eax
jne 0x42e4f1
lea eax, [esi + 8]
jmp 0x42e4f1
mov eax, 0x6f4744
push 0x103
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.006343b8
add esp, 0xc
mov dword [esp + 0x4d0], 0xffffffff
test esi, esi
je 0x42e528
mov eax, dword [esi]
test eax, eax
jne 0x42e525
mov ecx, esi
call fcn.004df580
jmp 0x42e528
dec eax
mov dword [esi], eax
xor eax, eax
mov word [esp + 0x2b2], ax
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x38]
call fcn.0040ac00
mov dword [esp + 0x4d0], 0xd
cmp dword [esp + 0x48], 8
mov edi, dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
lea eax, [esp + 0x34]
cmovae eax, dword [esp + 0x34]
push eax
call edi
test eax, eax
setne byte [esp + 0xc]
mov dword [esp + 0x4d0], 0xffffffff
lea ecx, [esp + 0x34]
call fcn.0040aca0
cmp byte [esp + 0xc], 0
je 0x42e5a4
lea edi, [esp + 0xac]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x42e591
mov eax, dword [0x6e3f44]
mov dword [edi], eax
mov edx, dword [0x77a6cc]
mov esi, dword [esp + 0x10]
mov byte [0x77a67f], 1
mov byte [esp + 0xd], 1
mov byte [esp + 0xe], 1
inc esi
mov dword [esp + 0x10], esi
cmp esi, edx
jl 0x42e470
mov esi, dword [esp + 0x14]
xor edx, edx
mov ecx, 0x6e3f48
call fcn.004312a0
test al, al
je 0x42e67c
mov cl, byte [esp + 0xd]
test cl, cl
je 0x42e663
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x2b8]
push eax
push 0x103
lea eax, [esp + 0xb8]
push eax
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov ax, word [esp + 0x2b4]
lea ecx, [esp + 0xac]
movzx edx, ax
test ax, ax
je 0x42e650
lea eax, [esp + 0x2b4]
mov edi, ecx
sub eax, edi
jmp 0x42e640
mov word [ecx], dx
movzx edx, word [ecx + eax + 2]
add ecx, 2
test dx, dx
jne 0x42e640
xor eax, eax
mov byte [esp + 0xd], 1
mov word [ecx], ax
mov cl, byte [esp + 0xd]
mov byte [0x77a67f], al
mov byte [esp + 0xe], 1
mov byte [esp + 0xf], 1
jmp 0x42f095
mov byte [esp + 0xe], 1
jmp 0x42e5d0
cmp byte [esp + 0xe], 0
jne 0x42f091
lea ecx, [esp + 0x34]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0xe
mov edx, eax
lea ecx, [esp + 0x1c]
call fcn.00420a00
mov byte [esp + 0x4d0], 0xf
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00420900
mov byte [esp + 0x4d0], 0x10
cmp dword [eax + 0x14], 8
jb 0x42e6c9
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0x2b4]
test dx, dx
je 0x42e6f1
jmp 0x42e6e0
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e6e0
xor eax, eax
mov word [ecx], ax
mov byte [esp + 0x4d0], 0xf
cmp dword [esp + 0x60], 8
jb 0x42e711
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov byte [esp + 0x4d0], 0xe
cmp dword [esp + 0x30], 8
jb 0x42e743
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x42e778
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
lea edi, [esp + 0x2b4]
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x42e7a0
mov ecx, 6
mov esi, str.content_data
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0x20]
movsw word es:[edi], word [esi]
call fcn.0040ac00
mov dword [esp + 0x4d0], 0x11
cmp dword [esp + 0x30], 8
mov edi, dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call edi
test eax, eax
setne al
mov byte [esp + 0xc], al
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42e818
push dword [esp + 0x1c]
call fcn.00633f98
mov al, byte [esp + 0x10]
add esp, 4
xor ecx, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], cx
test al, al
je 0x42e8c2
lea edi, [esp + 0x2b4]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x42e841
mov eax, dword [0x6e3f70]
mov dword [edi], eax
mov ax, word [esp + 0x2b4]
lea ecx, [esp + 0xac]
movzx edx, ax
test ax, ax
je 0x42e890
lea eax, [esp + 0x2b4]
mov esi, ecx
sub eax, esi
jmp 0x42e880
mov word [ecx], dx
movzx edx, word [ecx + eax + 2]
add ecx, 2
test dx, dx
jne 0x42e880
xor eax, eax
mov word [ecx], ax
mov byte [0x77a67f], 1
jmp 0x42f2e3
cmp esi, 2
jne 0x42e8c2
lea ecx, [esp + 0xac]
call fcn.00439f00
test al, al
je 0x42e8c2
mov byte [0x77a67f], 1
jmp 0x42f2e3
lea ecx, [esp + 0x1c]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0x12
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00420a00
mov byte [esp + 0x4d0], 0x13
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.00420900
mov byte [esp + 0x4d0], 0x14
cmp dword [eax + 0x14], 8
jb 0x42e904
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0x2b4]
test dx, dx
je 0x42e924
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42e913
xor eax, eax
mov word [ecx], ax
mov byte [esp + 0x4d0], 0x13
cmp dword [esp + 0x48], 8
jb 0x42e944
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov byte [esp + 0x4d0], 0x12
cmp dword [esp + 0x60], 8
jb 0x42e976
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42e9ab
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
add ecx, 0xfffffffe
lea esp, [esp]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42e9d0
mov eax, dword [0x6e3f74]
mov dword [ecx], eax
mov eax, dword [str.ta.xp3]
mov dword [ecx + 4], eax
mov eax, dword [0x6e3f7c]
mov dword [ecx + 8], eax
mov eax, dword [0x6e3f80]
mov dword [ecx + 0xc], eax
mov ax, word [0x6e3f84]
mov word [ecx + 0x10], ax
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0x20]
call fcn.0040ac00
mov dword [esp + 0x4d0], 0x15
cmp dword [esp + 0x30], 8
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call esi
test eax, eax
je 0x42ea56
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call edi
mov byte [esp + 0xc], 1
test eax, eax
je 0x42ea5b
mov byte [esp + 0xc], 0
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42ea79
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
cmp byte [esp + 0xc], al
je 0x42eaec
mov ax, word [esp + 0x2b4]
lea ecx, [esp + 0xac]
movzx edx, ax
test ax, ax
je 0x42ead0
lea eax, [esp + 0x2b4]
mov esi, ecx
sub eax, esi
jmp 0x42eac0
mov word [ecx], dx
movzx edx, word [ecx + eax + 2]
add ecx, 2
test dx, dx
jne 0x42eac0
xor eax, eax
mov word [ecx], ax
mov al, 1
mov byte [0x77a67f], 1
mov byte [esp + 0xd], 1
mov byte [esp + 0xe], al
jmp 0x42ee6a
lea ecx, [esp + 0x1c]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0x16
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00420a00
mov byte [esp + 0x4d0], 0x17
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.00420900
mov byte [esp + 0x4d0], 0x18
cmp dword [eax + 0x14], 8
jb 0x42eb2e
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0x2b4]
test dx, dx
je 0x42eb51
lea ecx, [ecx]
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42eb40
xor eax, eax
mov word [ecx], ax
mov byte [esp + 0x4d0], 0x17
cmp dword [esp + 0x48], 8
jb 0x42eb71
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov byte [esp + 0x4d0], 0x16
cmp dword [esp + 0x60], 8
jb 0x42eba3
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42ebd8
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
add ecx, 0xfffffffe
lea esp, [esp]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42ec00
mov eax, dword [str.data.exe]
mov dword [ecx], eax
mov eax, dword [0x6e3f8c]
mov dword [ecx + 4], eax
mov eax, dword [0x6e3f90]
mov dword [ecx + 8], eax
mov eax, dword [0x6e3f94]
mov dword [ecx + 0xc], eax
mov ax, word [0x6e3f98]
mov word [ecx + 0x10], ax
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0x20]
call fcn.0040ac00
mov dword [esp + 0x4d0], 0x19
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call esi
test eax, eax
je 0x42ec80
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call edi
mov byte [esp + 0xc], 1
test eax, eax
je 0x42ec85
mov byte [esp + 0xc], 0
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42eca3
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
cmp byte [esp + 0xc], al
je 0x42ed05
mov ax, word [esp + 0x2b4]
lea ecx, [esp + 0xac]
movzx edx, ax
test ax, ax
je 0x42ead0
lea eax, [esp + 0x2b4]
mov esi, ecx
sub eax, esi
jmp 0x42ecf0
mov word [ecx], dx
movzx edx, word [ecx + eax + 2]
add ecx, 2
test dx, dx
jne 0x42ecf0
jmp 0x42ead0
lea ecx, [esp + 0x34]
call fcn.0043eba0
mov edi, eax
mov dword [esp + 0x4d0], 0x1a
cmp dword [edi + 0x14], 8
jb 0x42ed23
mov edi, dword [edi]
test edi, edi
jne 0x42ed2b
xor esi, esi
jmp 0x42ed46
cmp word [edi], 0
jne 0x42ed35
xor esi, esi
jmp 0x42ed46
call fcn.004df4c0
mov esi, eax
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.0040bb30
mov dword [esp + 0x10], esi
mov byte [esp + 0x4d0], 0x1b
lea edx, [esp + 0x10]
lea ecx, [esp + 0x18]
call fcn.0040d240
mov byte [esp + 0x4d0], 0x1c
mov ecx, eax
call fcn.00435c00
mov byte [esp + 0xc], al
mov byte [esp + 0x4d0], 0x1b
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x42ed92
mov eax, dword [ecx]
test eax, eax
jne 0x42ed8f
call fcn.004df580
jmp 0x42ed92
dec eax
mov dword [ecx], eax
mov byte [esp + 0x4d0], 0x1a
test esi, esi
je 0x42edb0
mov eax, dword [esi]
test eax, eax
jne 0x42edad
mov ecx, esi
call fcn.004df580
jmp 0x42edb0
dec eax
mov dword [esi], eax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x42edce
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp byte [esp + 0xc], al
je 0x42ee66
lea ecx, [esp + 0x34]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0x1d
cmp dword [eax + 0x14], 8
jb 0x42ee07
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0xac]
test dx, dx
je 0x42ee27
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42ee16
xor eax, eax
mov word [ecx], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x42ee4a
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
jmp 0x42ead5
mov al, byte [esp + 0xe]
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x42f091
test al, al
jne 0x42f091
lea ecx, [esp + 0x1c]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0x1e
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.00420a00
mov byte [esp + 0x4d0], 0x1f
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.00420900
mov byte [esp + 0x4d0], 0x20
cmp dword [eax + 0x14], 8
jb 0x42eec0
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0x2b4]
test dx, dx
je 0x42eee1
nop
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42eed0
xor eax, eax
mov word [ecx], ax
mov byte [esp + 0x4d0], 0x1f
cmp dword [esp + 0x48], 8
jb 0x42ef01
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov byte [esp + 0x4d0], 0x1e
cmp dword [esp + 0x60], 8
jb 0x42ef33
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42ef68
push dword [esp + 0x1c]
call fcn.00633f98
add esp, 4
xor eax, eax
lea ecx, [esp + 0x2b4]
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], ax
add ecx, 0xfffffffe
lea esp, [esp]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x42ef90
mov eax, dword [0x6e3f9c]
mov dword [ecx], eax
mov eax, dword [0x6e3fa0]
mov dword [ecx + 4], eax
mov ax, word [0x6e3fa4]
mov word [ecx + 8], ax
lea eax, [esp + 0x2b4]
push eax
lea ecx, [esp + 0x20]
call fcn.0040ac00
mov dword [esp + 0x4d0], 0x21
cmp dword [esp + 0x30], 8
lea eax, [esp + 0x1c]
cmovae eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
setne al
mov byte [esp + 0xc], al
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x30], 8
jb 0x42f011
push dword [esp + 0x1c]
call fcn.00633f98
mov al, byte [esp + 0x10]
add esp, 4
xor ecx, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], 0
mov word [esp + 0x1c], cx
test al, al
je 0x42f091
lea edi, [esp + 0x2b4]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x42f036
mov eax, dword [0x6e3fa8]
mov dword [edi], eax
mov ax, word [esp + 0x2b4]
lea ecx, [esp + 0xac]
movzx edx, ax
test ax, ax
je 0x42e890
lea eax, [esp + 0x2b4]
mov esi, ecx
sub eax, esi
nop
mov word [ecx], dx
movzx edx, word [ecx + eax + 2]
add ecx, 2
test dx, dx
jne 0x42f070
xor eax, eax
mov word [ecx], ax
mov byte [0x77a67f], 1
jmp 0x42f2e3
mov cl, byte [esp + 0xd]
mov edi, 0x5c
test cl, cl
jne 0x42f1d6
test esi, esi
je 0x42f0bf
push ecx
lea ecx, [esp + 0x68]
call fcn.0042a590
push 0x74b9ec
lea eax, [esp + 0x68]
push eax
call fcn.0063b5bb
lea ecx, [esp + 0x4c]
call fcn.0043eba0
mov dword [esp + 0x4d0], 0x22
mov edx, eax
lea ecx, [esp + 0x34]
call fcn.00420a00
mov byte [esp + 0x4d0], 0x23
cmp dword [eax + 0x14], 8
jb 0x42f0ee
mov eax, dword [eax]
movzx edx, word [eax]
lea ecx, [esp + 0xac]
test dx, dx
je 0x42f111
lea ecx, [ecx]
lea eax, [eax + 2]
mov word [ecx], dx
movzx edx, word [eax]
add ecx, 2
test dx, dx
jne 0x42f100
xor eax, eax
mov word [ecx], ax
mov byte [esp + 0x4d0], 0x22
cmp dword [esp + 0x48], 8
jb 0x42f131
push dword [esp + 0x34]
call fcn.00633f98
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x4d0], 0xffffffff
cmp dword [esp + 0x60], 8
jb 0x42f166
push dword [esp + 0x4c]
call fcn.00633f98
add esp, 4
xor eax, eax
cmp word [esp + 0xac], 0
mov word [esp + 0x4c], ax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
lea eax, [esp + 0xac]
je 0x42f199
nop
add eax, 2
cmp word [eax], 0
jne 0x42f190
lea ecx, [esp + 0xac]
sub eax, ecx
sar eax, 1
cmp word [esp + eax*2 + 0xaa], 0x5c
je 0x42f1de
mov word [esp + eax*2 + 0xac], di
lea eax, [eax*2 + 2]
cmp eax, 0x208
jae 0x42f1d1
xor ecx, ecx
mov word [esp + eax + 0xac], cx
jmp 0x42f1de
call fcn.006340d3
test esi, esi
jne 0x42f2e3
cmp byte [esp + 0xe], 0
je 0x42f1f0
cmp byte [esp + 0xf], 0
je 0x42f2e3
mov ecx, dword [0x789524]
xorps xmm0, xmm0
movdqa xmmword [esp + 0x64], xmm0
lea eax, [esp + 0x2b4]
mov dword [esp + 0x6c], eax
mov eax, dword [0x789528]
test eax, eax
cmovne ecx, eax
movdqa xmmword [esp + 0x74], xmm0
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], 0x400b
mov dword [esp + 0x7c], 0x42dd90
mov dword [esp + 0x80], 0
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov esi, eax
test esi, esi
je 0x42f2e3
lea eax, [esp + 0x2b4]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x42f2dc
push 0x104
lea eax, [esp + 0x2b8]
push eax
lea eax, [esp + 0xb4]
push eax
call fcn.006343b8
add esp, 0xc
lea ecx, [esp + 0xac]
call fcn.004968c0
cmp eax, 1
jl 0x42f2d5
cmp word [esp + eax*2 + 0xaa], 0x5c
je 0x42f2d5
cmp eax, 0x102
jge 0x42f2d5
mov word [esp + eax*2 + 0xac], di
lea eax, [eax*2 + 2]
cmp eax, 0x208
jae 0x42f1d1
xor ecx, ecx
mov word [esp + eax + 0xac], cx
mov byte [0x77a67f], 1
push esi
call dword [sym.imp.ole32.dll_CoTaskMemFree]
cmp word [esp + 0xac], 0
lea eax, [esp + 0xac]
je 0x42f2fe
add eax, 2
cmp word [eax], 0
jne 0x42f2f5
lea ecx, [esp + 0xac]
sub eax, ecx
sar eax, 1
cmp eax, 1
jl 0x42f342
lea ecx, [eax + eax]
cmp word [esp + ecx + 0xaa], 0x5c
je 0x42f342
mov ax, word [0x770cdc]
mov word [esp + ecx + 0xac], ax
lea eax, [ecx + 2]
cmp eax, 0x208
jae 0x42f1d1
xor ecx, ecx
mov word [esp + eax + 0xac], cx
cmp word [esp + 0xac], 0
jne 0x42f351
xor esi, esi
jmp 0x42f369
call fcn.004df4c0
mov esi, eax
push 0xffffffffffffffff
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
call fcn.0040bb30
mov dword [esp + 0x18], esi
mov dword [esp + 0x4d0], 0x24
lea edx, [esp + 0x18]
lea ecx, [esp + 0x10]
call fcn.0040d240
mov edi, eax
mov byte [esp + 0x4d0], 0x25
mov ecx, dword [edi]
test ecx, ecx
je 0x42f397
inc dword [ecx]
mov eax, dword [0x7877b4]
test eax, eax
je 0x42f3b2
mov ecx, dword [eax]
test ecx, ecx
jne 0x42f3af
mov ecx, eax
call fcn.004df580
jmp 0x42f3b2
dec ecx
mov dword [eax], ecx
mov eax, dword [edi]
mov dword [0x7877b4], eax
mov byte [esp + 0x4d0], 0x24
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42f3db
mov ecx, dword [eax]
test ecx, ecx
jne 0x42f3d8
mov ecx, eax
call fcn.004df580
jmp 0x42f3db
dec ecx
mov dword [eax], ecx
mov dword [esp + 0x4d0], 0xffffffff
test esi, esi
je 0x42f3fc
mov eax, dword [esi]
test eax, eax
jne 0x42f3f9
mov ecx, esi
call fcn.004df580
jmp 0x42f3fc
dec eax
mov dword [esi], eax
mov ecx, 0x7877b4
call fcn.0040d2a0
cmp word [esp + 0xac], 0
jne 0x42f415
xor ecx, ecx
jmp 0x42f42f
lea ecx, [esp + 0xac]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42f420
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0xb0]
push eax
mov ecx, 0x7766b4
call fcn.0040ae70
cmp byte [0x77a67f], 0
je 0x42f4a5
mov eax, dword [0x788bc4]
mov edx, dword [0x788bc0]
test eax, eax
cmovne edx, eax
push 0x7877b4
lea ecx, [esp + 0x1c]
call fcn.00452570
add esp, 4
mov dword [esp + 0x4d0], 0x26
mov dl, 1
mov ecx, eax
call fcn.004e14a0
mov dword [esp + 0x4d0], 0xffffffff
mov eax, dword [esp + 0x18]
test eax, eax
je 0x42f4a5
mov ecx, dword [eax]
test ecx, ecx
jne 0x42f4a2
mov ecx, eax
call fcn.004df580
jmp 0x42f4a5
dec ecx
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x4b4]
xor ecx, esp
call fcn.00633732
mov esp, ebp
pop ebp
ret