Function at 0x100af050
Capabilities:
Check if file exists
Copy file
Create directory
Enumerate files on windows
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x724
mov eax, dword [0x10100008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
lea eax, [ebp - 0x110]
mov dword [ebp - 0x660], 0
push eax
push 0
push 0
push 0
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x68c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x6a0], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100af0b0
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
lea ecx, [ebp - 0x6a0]
call fcn.100b2e90
push 0x100fb364
lea ecx, [ebp - 0x6a0]
call fcn.100b2580
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x438], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x428], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x68c]
cmp edx, 0x10
jb 0x100af13e
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af134
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
sub esp, 0x18
mov ecx, esp
call fcn.10084710
lea ecx, [ebp - 0x4e4]
call fcn.10084a40
mov ecx, esp
push 0x10102250
call fcn.100b2700
lea ecx, [ebp - 0x680]
call fcn.10084620
add esp, 0x18
lea ecx, [ebp - 0x4e4]
cmp dword [ebp - 0x4d0], 0x10
cmovae ecx, dword [ebp - 0x4e4]
push dword [ebp - 0x4d4]
push ecx
push ecx
mov ecx, eax
call fcn.100b7550
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x4cc], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x66c]
movq qword [ebp - 0x4bc], xmm0
cmp edx, 0x10
jb 0x100af1f2
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af1e8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0968
push edx
push ecx
call fcn.100becc4
add esp, 8
mov esi, dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x408]
push eax
push 0x104
call esi
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x68c], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x6a0], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100af230
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x6a0]
call fcn.100b2e90
lea eax, [ebp - 0x4cc]
push eax
lea edx, [ebp - 0x6a0]
lea ecx, [ebp - 0x450]
call fcn.100b3430
mov edx, dword [ebp - 0x68c]
add esp, 4
cmp edx, 0x10
jb 0x100af2a1
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af297
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b096d
push edx
push ecx
call fcn.100becc4
add esp, 8
lea eax, [ebp - 0x408]
push eax
push 0x104
call esi
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x484], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100af2d3
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x484]
call fcn.100b2e90
sub esp, 0x18
mov ecx, esp
push 0x10101f08
call fcn.100b2700
lea ecx, [ebp - 0x4b4]
call fcn.10084620
lea eax, [ebp - 0x4b4]
push eax
lea edx, [ebp - 0x484]
lea ecx, [ebp - 0x680]
call fcn.100b34d0
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
jb 0x100af32c
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x100af33e
mov bl, 1
jmp 0x100af346
shr bl, 4
not bl
and bl, 1
mov edx, dword [ebp - 0x66c]
cmp edx, 0x10
jb 0x100af380
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af376
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0972
push edx
push ecx
call fcn.100becc4
add esp, 8
test bl, bl
je 0x100af3ea
lea eax, [ebp - 0x4b4]
push eax
lea edx, [ebp - 0x484]
lea ecx, [ebp - 0x680]
call fcn.100b34d0
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100af3a7
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [ebp - 0x66c]
cmp edx, 0x10
jb 0x100af3ea
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af3e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0977
push edx
push ecx
call fcn.100becc4
add esp, 8
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x68c], 0xf
mov byte [ebp - 0x6a0], 0
lea edx, [eax - 1]
cmp eax, edx
jb 0x100b097c
sub eax, edx
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x424], 0x10
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push ecx
add eax, edx
lea ecx, [ebp - 0x6a0]
push eax
call fcn.100b2e90
mov edx, 0x100fb364
lea ecx, [ebp - 0x6a0]
call fcn.100b32b0
mov edx, dword [ebp - 0x68c]
mov bl, al
cmp edx, 0x10
jb 0x100af491
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af487
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov eax, dword [ebp - 0x428]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x40c], 0xf
mov byte [ebp - 0x420], 0
test bl, bl
jne 0x100af59b
add eax, 2
push eax
call fcn.100b5850
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
mov esi, dword [ebp - 0x40c]
mov eax, esi
cmovae ecx, dword [ebp - 0x438]
mov edi, dword [ebp - 0x428]
mov edx, dword [ebp - 0x410]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100af523
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x410], eax
lea eax, [ebp - 0x420]
cmovae eax, dword [ebp - 0x420]
lea esi, [eax + edx]
push esi
call fcn.100c21a0
add esp, 0xc
mov byte [edi + esi], bl
jmp 0x100af53c
mov byte [ebp - 0x664], 0
lea ecx, [ebp - 0x420]
push dword [ebp - 0x664]
push edi
call fcn.100b4330
push 0x100fb4d0
lea ecx, [ebp - 0x420]
call fcn.100b2580
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x438]
call fcn.100b2640
mov edx, dword [ebp - 0x40c]
cmp edx, 0x10
jb 0x100af672
mov ecx, dword [ebp - 0x420]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af668
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0981
jmp 0x100af668
inc eax
push eax
call fcn.100b5850
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x438]
mov esi, dword [ebp - 0x40c]
mov eax, esi
cmovae ecx, dword [ebp - 0x438]
mov edi, dword [ebp - 0x428]
mov edx, dword [ebp - 0x410]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100af5fd
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x410], eax
lea eax, [ebp - 0x420]
cmovae eax, dword [ebp - 0x420]
lea esi, [eax + edx]
push esi
call fcn.100c21a0
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100af616
mov byte [ebp - 0x664], 0
lea ecx, [ebp - 0x420]
push dword [ebp - 0x664]
push edi
call fcn.100b4330
push 0x100f5bc8
lea ecx, [ebp - 0x420]
call fcn.100b2580
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x438]
call fcn.100b2640
mov edx, dword [ebp - 0x40c]
cmp edx, 0x10
jb 0x100af672
mov ecx, dword [ebp - 0x420]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af668
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0986
push edx
push ecx
call fcn.100becc4
add esp, 8
cmp dword [ebp - 0x424], 0x10
lea ecx, [ebp - 0x658]
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
mov dword [ebp - 0x684], 0
mov dword [ebp - 0x664], ebx
or edi, 0xffffffff
nop dword [eax]
lea ecx, [ebp - 0x62c]
mov dword [ebp - 0x48c], 0
mov dword [ebp - 0x488], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x49c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100af6d4
sub ecx, edx
lea eax, [ebp - 0x62c]
push ecx
push eax
lea ecx, [ebp - 0x49c]
call fcn.100b2e90
test byte [ebp - 0x658], 0x10
jne 0x100b0387
mov eax, dword [ebp - 0x428]
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6a4], 0xf
mov byte [ebp - 0x6b8], 0
lea ecx, [eax - 2]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x424], 0x10
lea eax, [ebp - 0x438]
cmovae eax, dword [ebp - 0x438]
push ecx
push eax
lea ecx, [ebp - 0x6b8]
call fcn.100b2e90
push 0x100fb364
lea ecx, [ebp - 0x6b8]
call fcn.100b2580
lea edx, [ebp - 0x6d0]
lea ecx, [ebp - 0x468]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x6d0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x6c0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x49c]
push eax
call fcn.100b3430
mov edx, dword [ebp - 0x6bc]
add esp, 4
cmp edx, 0x10
jb 0x100af7d4
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af7ca
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x6a4]
mov dword [ebp - 0x6c0], 0
mov dword [ebp - 0x6bc], 0xf
mov byte [ebp - 0x6d0], 0
cmp edx, 0x10
jb 0x100af829
mov ecx, dword [ebp - 0x6b8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af81f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x6e8]
call fcn.100b2700
mov esi, dword [ebp - 0x6d8]
xor edi, edi
test esi, esi
je 0x100af932
nop dword [eax + eax]
mov ebx, dword [ebp - 0x6d4]
lea ecx, [ebp - 0x6e8]
cmp ebx, 0x10
mov edx, esi
push 1
cmovae ecx, dword [ebp - 0x6e8]
push 0x100f1e9c
push ecx
call fcn.100b3fb0
add esp, 0xc
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6a4], 0xf
mov byte [ebp - 0x6b8], 0
lea edx, [eax + 1]
cmp esi, edx
jb 0x100b097c
sub esi, edx
lea eax, [ebp - 0x6e8]
mov ecx, 0xff
cmp esi, ecx
cmovb ecx, esi
cmp ebx, 0x10
push ecx
cmovae eax, dword [ebp - 0x6e8]
lea ecx, [ebp - 0x6b8]
add eax, edx
push eax
call fcn.100b2e90
mov edx, dword [ebp - 0x6d4]
cmp edx, 0x10
jb 0x100af903
mov ecx, dword [ebp - 0x6e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100af8f9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
movq xmm1, qword [ebp - 0x6a8]
inc edi
movups xmm0, xmmword [ebp - 0x6b8]
movq qword [ebp - 0x6d8], xmm1
mov esi, dword [ebp - 0x6d8]
movups xmmword [ebp - 0x6e8], xmm0
cmp edi, esi
jb 0x100af850
jmp 0x100af941
movq xmm1, qword [ebp - 0x6d8]
movups xmm0, xmmword [ebp - 0x6e8]
push 0
push 0x100f1e88
lea ecx, [ebp - 0x420]
movq qword [ebp - 0x690], xmm1
movups xmmword [ebp - 0x6a0], xmm0
mov dword [ebp - 0x6d8], 0
mov dword [ebp - 0x6d4], 0xf
mov byte [ebp - 0x6e8], 0
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x40c], 0xf
mov byte [ebp - 0x420], 0
call fcn.100b2e90
mov ebx, dword [ebp - 0x6a0]
xor esi, esi
cmp dword [ebp - 0x690], esi
jle 0x100afa52
nop dword [eax]
cmp dword [ebp - 0x68c], 0x10
lea eax, [ebp - 0x6a0]
mov edx, dword [ebp - 0x410]
mov edi, dword [ebp - 0x40c]
cmovae eax, ebx
mov cl, byte [eax + esi]
mov al, cl
mov byte [ebp - 0x708], cl
sub al, 0x41
cmp al, 0x1b
ja 0x100af9ff
add cl, 0x20
mov byte [ebp - 0x46c], cl
cmp edx, edi
jb 0x100afa03
push dword [ebp - 0x46c]
mov byte [ebp - 0x704], 0
push dword [ebp - 0x704]
jmp 0x100afa39
cmp edx, edi
jae 0x100afa26
lea eax, [edx + 1]
cmp edi, 0x10
mov dword [ebp - 0x410], eax
lea eax, [ebp - 0x420]
cmovae eax, dword [ebp - 0x420]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x100afa45
push dword [ebp - 0x708]
mov byte [ebp - 0x70c], 0
push dword [ebp - 0x70c]
push ecx
lea ecx, [ebp - 0x420]
call fcn.100b4090
inc esi
cmp esi, dword [ebp - 0x690]
jl 0x100af9b0
mov eax, dword [ebp - 0x68c]
cmp eax, 0x10
jb 0x100afa88
lea ecx, [eax + 1]
mov eax, ebx
cmp ecx, 0x1000
jb 0x100afa7e
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push ecx
push ebx
call fcn.100becc4
add esp, 8
mov ebx, dword [ebp - 0x660]
sub esp, 0x18
mov ecx, esp
or ebx, 1
mov dword [ebp - 0x660], ebx
push 0x10101c20
call fcn.100b2700
lea ecx, [ebp - 0x500]
call fcn.10084620
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100afabe
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
mov esi, dword [ebp - 0x420]
mov edi, dword [ebp - 0x410]
cmovae ecx, esi
mov dword [ebp - 0x65c], esi
cmp edi, dword [eax + 0x10]
jne 0x100afb4d
mov esi, edi
sub esi, 4
jb 0x100afb01
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100afb0a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100afaf0
cmp esi, 0xfffffffc
je 0x100afdea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100afb47
cmp esi, 0xfffffffd
je 0x100afdea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100afb47
cmp esi, 0xfffffffe
je 0x100afdea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100afb47
cmp esi, 0xffffffff
je 0x100afdea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100afdea
mov esi, dword [ebp - 0x65c]
sub esp, 0x18
or ebx, 2
mov ecx, esp
mov dword [ebp - 0x660], ebx
push 0x10102400
call fcn.100b2700
lea ecx, [ebp - 0x680]
call fcn.10084620
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100afb7d
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100afbfd
mov esi, edi
sub esi, 4
jb 0x100afbb1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100afbba
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100afba0
cmp esi, 0xfffffffc
je 0x100afdea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100afbf7
cmp esi, 0xfffffffd
je 0x100afdea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100afbf7
cmp esi, 0xfffffffe
je 0x100afdea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100afbf7
cmp esi, 0xffffffff
je 0x100afdea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100afdea
mov esi, dword [ebp - 0x65c]
sub esp, 0x18
or ebx, 4
mov ecx, esp
mov dword [ebp - 0x660], ebx
push 0x10101ea8
call fcn.100b2700
lea ecx, [ebp - 0x724]
call fcn.10084620
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100afc2d
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100afcad
mov esi, edi
sub esi, 4
jb 0x100afc61
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100afc6a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100afc50
cmp esi, 0xfffffffc
je 0x100afdea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100afca7
cmp esi, 0xfffffffd
je 0x100afdea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100afca7
cmp esi, 0xfffffffe
je 0x100afdea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100afca7
cmp esi, 0xffffffff
je 0x100afdea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100afdea
mov esi, dword [ebp - 0x65c]
sub esp, 0x18
or ebx, 8
mov ecx, esp
mov dword [ebp - 0x660], ebx
push 0x10101d28
call fcn.100b2700
lea ecx, [ebp - 0x6d0]
call fcn.10084620
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100afcdd
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100afd5d
mov esi, edi
sub esi, 4
jb 0x100afd11
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100afd1a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100afd00
cmp esi, 0xfffffffc
je 0x100afdea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100afd57
cmp esi, 0xfffffffd
je 0x100afdea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100afd57
cmp esi, 0xfffffffe
je 0x100afdea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100afd57
cmp esi, 0xffffffff
je 0x100afdea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100afdea
mov esi, dword [ebp - 0x65c]
sub esp, 0x18
or ebx, 0x10
mov ecx, esp
mov dword [ebp - 0x660], ebx
push 0x10101b60
call fcn.100b2700
lea ecx, [ebp - 0x6b8]
call fcn.10084620
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100afd8d
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100afdee
sub edi, 4
jb 0x100afdb8
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100afdbd
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100afda7
cmp edi, 0xfffffffc
je 0x100afdea
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100afdee
cmp edi, 0xfffffffd
je 0x100afdea
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100afdee
cmp edi, 0xfffffffe
je 0x100afdea
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100afdee
cmp edi, 0xffffffff
je 0x100afdea
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100afdee
mov bl, 1
jmp 0x100afdf0
xor bl, bl
mov eax, dword [ebp - 0x660]
test al, 0x10
je 0x100afe5e
mov edx, dword [ebp - 0x6a4]
and eax, 0xffffffef
mov dword [ebp - 0x660], eax
cmp edx, 0x10
jb 0x100afe43
mov ecx, dword [ebp - 0x6b8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100afe33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
mov eax, dword [ebp - 0x660]
add esp, 8
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6a4], 0xf
mov byte [ebp - 0x6b8], 0
test al, 8
je 0x100afec6
mov edx, dword [ebp - 0x6bc]
and eax, 0xfffffff7
mov dword [ebp - 0x660], eax
cmp edx, 0x10
jb 0x100afeab
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100afe9b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
mov eax, dword [ebp - 0x660]
add esp, 8
mov dword [ebp - 0x6c0], 0
mov dword [ebp - 0x6bc], 0xf
mov byte [ebp - 0x6d0], 0
test al, 4
je 0x100aff2e
mov edx, dword [ebp - 0x710]
and eax, 0xfffffffb
mov dword [ebp - 0x660], eax
cmp edx, 0x10
jb 0x100aff13
mov ecx, dword [ebp - 0x724]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100aff03
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
mov eax, dword [ebp - 0x660]
add esp, 8
mov dword [ebp - 0x714], 0
mov dword [ebp - 0x710], 0xf
mov byte [ebp - 0x724], 0
test al, 2
je 0x100aff96
mov edx, dword [ebp - 0x66c]
and eax, 0xfffffffd
mov dword [ebp - 0x660], eax
cmp edx, 0x10
jb 0x100aff7b
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100aff6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
mov eax, dword [ebp - 0x660]
add esp, 8
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x66c], 0xf
mov byte [ebp - 0x680], 0
mov edx, dword [ebp - 0x4ec]
and eax, 0xfffffffe
mov dword [ebp - 0x660], eax
cmp edx, 0x10
jb 0x100affd9
mov ecx, dword [ebp - 0x500]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100affcf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
test bl, bl
je 0x100b02f9
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x680]
call fcn.100b2700
cmp dword [ebp - 0x66c], 0x10
lea ecx, [ebp - 0x518]
lea eax, [ebp - 0x680]
cmovae eax, dword [ebp - 0x680]
push ecx
push eax
call fcn.100ca955
mov edx, dword [ebp - 0x66c]
or edi, 0xffffffff
add esp, 8
mov esi, edi
test eax, eax
cmove esi, dword [ebp - 0x504]
cmp edx, 0x10
jb 0x100b005f
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0055
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
cmp esi, 0x32000
jge 0x100b02fc
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x700]
call fcn.100b2700
mov esi, dword [ebp - 0x6f0]
xor edi, edi
test esi, esi
je 0x100b0172
nop dword [eax]
mov ebx, dword [ebp - 0x6ec]
lea ecx, [ebp - 0x700]
cmp ebx, 0x10
mov edx, esi
push 1
cmovae ecx, dword [ebp - 0x700]
push 0x100fb364
push ecx
call fcn.100b3fb0
add esp, 0xc
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x66c], 0xf
mov byte [ebp - 0x680], 0
lea edx, [eax + 1]
cmp esi, edx
jb 0x100b097c
sub esi, edx
lea eax, [ebp - 0x700]
mov ecx, 0xff
cmp esi, ecx
cmovb ecx, esi
cmp ebx, 0x10
push ecx
cmovae eax, dword [ebp - 0x700]
lea ecx, [ebp - 0x680]
add eax, edx
push eax
call fcn.100b2e90
mov edx, dword [ebp - 0x6ec]
cmp edx, 0x10
jb 0x100b0143
mov ecx, dword [ebp - 0x700]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0139
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
movq xmm1, qword [ebp - 0x670]
inc edi
movups xmm0, xmmword [ebp - 0x680]
movq qword [ebp - 0x6f0], xmm1
mov esi, dword [ebp - 0x6f0]
movups xmmword [ebp - 0x700], xmm0
cmp edi, esi
jb 0x100b0090
jmp 0x100b0181
movq xmm1, qword [ebp - 0x6f0]
movups xmm0, xmmword [ebp - 0x700]
lea eax, [ebp - 0x6d0]
movq qword [ebp - 0x6c0], xmm1
push eax
lea eax, [ebp - 0x4b4]
mov dword [ebp - 0x6f0], 0
push eax
lea edx, [ebp - 0x484]
mov dword [ebp - 0x6ec], 0xf
lea ecx, [ebp - 0x6b8]
mov byte [ebp - 0x700], 0
movups xmmword [ebp - 0x6d0], xmm0
call fcn.100b34d0
add esp, 4
lea ecx, [ebp - 0x724]
mov edx, eax
call fcn.100b3330
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100b01e5
mov eax, dword [eax]
cmp dword [ebp - 0x454], 0x10
lea ecx, [ebp - 0x468]
push 1
cmovae ecx, dword [ebp - 0x468]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp - 0x710]
cmp edx, 0x10
jb 0x100b023d
mov ecx, dword [ebp - 0x724]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0233
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x6a4]
mov dword [ebp - 0x714], 0
mov dword [ebp - 0x710], 0xf
mov byte [ebp - 0x724], 0
cmp edx, 0x10
jb 0x100b0292
mov ecx, dword [ebp - 0x6b8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0288
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x6bc]
mov dword [ebp - 0x6a8], 0
mov dword [ebp - 0x6a4], 0xf
mov byte [ebp - 0x6b8], 0
cmp edx, 0x10
jb 0x100b02e7
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b02dd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0963
push edx
push ecx
call fcn.100becc4
add esp, 8
mov eax, dword [ebp - 0x684]
inc eax
or edi, 0xffffffff
mov dword [ebp - 0x684], eax
jmp 0x100b0302
or edi, 0xffffffff
mov eax, dword [ebp - 0x684]
cmp eax, 0x14
mov eax, dword [ebp - 0x40c]
je 0x100b03dc
cmp eax, 0x10
jb 0x100b0347
mov edx, dword [ebp - 0x65c]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100b033d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b098b
push ecx
push edx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x454]
cmp edx, 0x10
jb 0x100b0381
mov ecx, dword [ebp - 0x468]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0377
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b098b
push edx
push ecx
call fcn.100becc4
add esp, 8
mov ebx, dword [ebp - 0x664]
mov edx, dword [ebp - 0x488]
cmp edx, 0x10
jb 0x100b03c1
mov ecx, dword [ebp - 0x49c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b03b7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
lea eax, [ebp - 0x658]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x100af6b0
jmp 0x100b04a7
cmp eax, 0x10
jb 0x100b0412
mov edx, dword [ebp - 0x65c]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100b0408
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b098b
push ecx
push edx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x454]
cmp edx, 0x10
jb 0x100b044c
mov ecx, dword [ebp - 0x468]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0442
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b098b
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x488]
mov dword [ebp - 0x458], 0
mov dword [ebp - 0x454], 0xf
mov byte [ebp - 0x468], 0
cmp edx, 0x10
jb 0x100b04a1
mov ecx, dword [ebp - 0x49c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0497
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b098b
push edx
push ecx
call fcn.100becc4
add esp, 8
mov ebx, dword [ebp - 0x664]
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x4b4]
push eax
lea edx, [ebp - 0x484]
lea ecx, [ebp - 0x500]
call fcn.100b34d0
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100b04d1
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x100b04e3
xor bl, bl
jmp 0x100b04e9
shr bl, 4
and bl, 1
mov edx, dword [ebp - 0x4ec]
cmp edx, 0x10
jb 0x100b0523
mov ecx, dword [ebp - 0x500]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0519
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0990
push edx
push ecx
call fcn.100becc4
add esp, 8
test bl, bl
je 0x100b0579
sub esp, 0x18
lea eax, [ebp - 0x450]
mov ecx, esp
push eax
call fcn.100b2700
sub esp, 0x18
lea eax, [ebp - 0x4b4]
mov ecx, esp
lea edx, [ebp - 0x484]
push eax
call fcn.100b34d0
add esp, 4
call fcn.100864c0
add esp, 0x18
lea eax, [ebp - 0x4b4]
mov ecx, esp
lea edx, [ebp - 0x484]
push eax
call fcn.100b34d0
add esp, 4
call fcn.10086dd0
add esp, 0x18
cmp dword [ebp - 0x43c], 0x10
lea eax, [ebp - 0x450]
push 0x100fb3d4
cmovae eax, dword [ebp - 0x450]
push eax
call fcn.100c885d
add esp, 8
test eax, eax
je 0x100b0790
push eax
call fcn.100c88eb
add esp, 4
lea eax, [ebp - 0x450]
lea ecx, [ebp - 0x680]
push eax
call fcn.100b2700
cmp dword [ebp - 0x66c], 0x10
lea ecx, [ebp - 0x518]
lea eax, [ebp - 0x680]
cmovae eax, dword [ebp - 0x680]
push ecx
push eax
call fcn.100ca955
mov edx, dword [ebp - 0x66c]
add esp, 8
test eax, eax
cmove edi, dword [ebp - 0x504]
cmp edx, 0x10
jb 0x100b0625
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b061b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b0995
push edx
push ecx
call fcn.100becc4
add esp, 8
cmp edi, 1
jle 0x100b0773
mov ecx, dword [ebp + 0x1c]
lea eax, [ebp + 8]
mov edx, dword [ebp + 8]
cmp ecx, 0x10
mov esi, dword [ebp + 0x18]
cmovae eax, edx
cmp esi, 1
jne 0x100b067d
cmp byte [eax], 0x30
jne 0x100b067d
sub esp, 0x18
lea eax, [ebp - 0x4cc]
mov ecx, esp
push eax
call fcn.100b2700
sub esp, 0x18
lea eax, [ebp - 0x450]
mov ecx, esp
push eax
call fcn.100b2700
call fcn.10086750
mov ecx, dword [ebp + 0x1c]
add esp, 0x30
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
cmp ecx, 0x10
lea eax, [ebp + 8]
cmovae eax, edx
cmp esi, 1
jne 0x100b0773
cmp byte [eax], 0x31
jne 0x100b0773
lea eax, [ebp - 0x4cc]
push eax
push ecx
lea ecx, [ebp - 0x500]
call fcn.10085f60
add esp, 4
lea ecx, [ebp - 0x680]
mov edx, eax
call fcn.100b3430
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100b06c6
mov eax, dword [eax]
cmp dword [ebp - 0x43c], 0x10
lea ecx, [ebp - 0x450]
push 1
cmovae ecx, dword [ebp - 0x450]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp - 0x66c]
cmp edx, 0x10
jb 0x100b071e
mov ecx, dword [ebp - 0x680]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0714
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099a
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x4ec]
mov dword [ebp - 0x670], 0
mov dword [ebp - 0x66c], 0xf
mov byte [ebp - 0x680], 0
cmp edx, 0x10
jb 0x100b0773
mov ecx, dword [ebp - 0x500]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0769
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099a
push edx
push ecx
call fcn.100becc4
add esp, 8
cmp dword [ebp - 0x43c], 0x10
lea eax, [ebp - 0x450]
cmovae eax, dword [ebp - 0x450]
push eax
call fcn.100c8af5
add esp, 4
mov edx, dword [ebp - 0x4a0]
cmp edx, 0x10
jb 0x100b07ca
mov ecx, dword [ebp - 0x4b4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b07c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x470]
cmp edx, 0x10
jb 0x100b0804
mov ecx, dword [ebp - 0x484]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b07fa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x43c]
cmp edx, 0x10
jb 0x100b083e
mov ecx, dword [ebp - 0x450]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0834
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x4b8]
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 0xf
mov byte [ebp - 0x450], 0
cmp edx, 0x10
jb 0x100b0893
mov ecx, dword [ebp - 0x4cc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0889
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x4d0]
cmp edx, 0x10
jb 0x100b08cd
mov ecx, dword [ebp - 0x4e4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b08c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp - 0x424]
cmp edx, 0x10
jb 0x100b0907
mov ecx, dword [ebp - 0x438]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b08fd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0xf
mov byte [ebp - 0x438], 0
cmp edx, 0x10
jb 0x100b0952
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100b0948
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100b099f
push edx
push ecx
call fcn.100becc4
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100be769
mov esp, ebp
pop ebp
ret
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100b3170
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
call fcn.100cb6d0
int3