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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x778
mov eax, dword [0x100fc008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
lea eax, [ebp - 0x110]
mov dword [ebp - 0x678], 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 - 0x6c0], 0
mov dword [ebp - 0x6bc], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x6d0], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ab5e0
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
lea ecx, [ebp - 0x6d0]
call fcn.100af160
push 0x100f72fc
lea ecx, [ebp - 0x6d0]
call fcn.100ae850
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x440], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x430], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x6bc]
cmp edx, 0x10
jb 0x100ab66e
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab664
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
sub esp, 0x18
mov ecx, esp
call fcn.10083c70
lea ecx, [ebp - 0x4d4]
call fcn.10083fa0
mov ecx, esp
push 0x100fe1c0
call fcn.100ae9d0
lea ecx, [ebp - 0x6a0]
call fcn.10083b80
add esp, 0x18
lea ecx, [ebp - 0x4d4]
cmp dword [ebp - 0x4c0], 0x10
cmovae ecx, dword [ebp - 0x4d4]
push dword [ebp - 0x4c4]
push ecx
push ecx
mov ecx, eax
call fcn.100b3780
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x500], xmm0
movq xmm0, qword [eax + 0x10]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov edx, dword [ebp - 0x68c]
movq qword [ebp - 0x4f0], xmm0
cmp edx, 0x10
jb 0x100ab722
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab718
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd86
push edx
push ecx
call fcn.100baf94
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 - 0x6c0], 0
mov dword [ebp - 0x6bc], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x6d0], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ab760
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x6d0]
call fcn.100af160
lea eax, [ebp - 0x500]
push eax
lea edx, [ebp - 0x6d0]
lea ecx, [ebp - 0x458]
call fcn.100af660
mov edx, dword [ebp - 0x6bc]
add esp, 4
cmp edx, 0x10
jb 0x100ab7d1
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab7c7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd8b
push edx
push ecx
call fcn.100baf94
add esp, 8
lea eax, [ebp - 0x408]
push eax
push 0x104
call esi
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x478], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x48c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100ab803
sub ecx, edx
lea eax, [ebp - 0x408]
push ecx
push eax
lea ecx, [ebp - 0x48c]
call fcn.100af160
sub esp, 0x18
mov ecx, esp
push 0x100fdec0
call fcn.100ae9d0
lea ecx, [ebp - 0x4bc]
call fcn.10083b80
lea eax, [ebp - 0x4bc]
push eax
lea edx, [ebp - 0x48c]
lea ecx, [ebp - 0x6a0]
call fcn.100af700
add esp, 0x1c
cmp dword [eax + 0x14], 0x10
jb 0x100ab85c
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100ab871
mov byte [ebp - 0x680], 1
jmp 0x100ab87e
shr al, 4
not al
and al, 1
mov dword [ebp - 0x680], eax
mov edx, dword [ebp - 0x68c]
cmp edx, 0x10
jb 0x100ab8b8
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab8ae
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd90
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp byte [ebp - 0x680], 0
je 0x100ab927
lea eax, [ebp - 0x4bc]
push eax
lea edx, [ebp - 0x48c]
lea ecx, [ebp - 0x6a0]
call fcn.100af700
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100ab8e4
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [ebp - 0x68c]
cmp edx, 0x10
jb 0x100ab927
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab91d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd95
push edx
push ecx
call fcn.100baf94
add esp, 8
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x6c0], 0
mov dword [ebp - 0x6bc], 0xf
mov byte [ebp - 0x6d0], 0
lea edx, [eax - 1]
cmp eax, edx
jb 0x100acd9a
sub eax, edx
mov ecx, 1
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x42c], 0x10
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push ecx
add eax, edx
lea ecx, [ebp - 0x6d0]
push eax
call fcn.100af160
mov edx, 0x100f72fc
lea ecx, [ebp - 0x6d0]
call fcn.100af4e0
mov edx, dword [ebp - 0x6bc]
mov byte [ebp - 0x679], al
cmp edx, 0x10
jb 0x100ab9d8
mov ecx, dword [ebp - 0x6d0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ab9c8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
mov al, byte [ebp - 0x679]
add esp, 8
test al, al
mov dword [ebp - 0x410], 0
mov eax, dword [ebp - 0x430]
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x40c], 0xf
mov byte [ebp - 0x420], 0
jne 0x100abae3
add eax, 2
push eax
call fcn.100b1a80
cmp dword [ebp - 0x42c], 0x10
lea ecx, [ebp - 0x440]
mov esi, dword [ebp - 0x40c]
mov eax, esi
cmovae ecx, dword [ebp - 0x440]
mov edi, dword [ebp - 0x430]
mov edx, dword [ebp - 0x410]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100aba6b
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.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100aba84
mov byte [ebp - 0x680], 0
lea ecx, [ebp - 0x420]
push dword [ebp - 0x680]
push edi
call fcn.100b0560
push 0x100f7434
lea ecx, [ebp - 0x420]
call fcn.100ae850
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x440]
call fcn.100ae910
mov edx, dword [ebp - 0x40c]
cmp edx, 0x10
jb 0x100abbba
mov ecx, dword [ebp - 0x420]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100abbb0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd9f
jmp 0x100abbb0
inc eax
push eax
call fcn.100b1a80
cmp dword [ebp - 0x42c], 0x10
lea ecx, [ebp - 0x440]
mov esi, dword [ebp - 0x40c]
mov eax, esi
cmovae ecx, dword [ebp - 0x440]
mov edi, dword [ebp - 0x430]
mov edx, dword [ebp - 0x410]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x100abb45
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.100be470
add esp, 0xc
mov byte [edi + esi], 0
jmp 0x100abb5e
mov byte [ebp - 0x680], 0
lea ecx, [ebp - 0x420]
push dword [ebp - 0x680]
push edi
call fcn.100b0560
push 0x100f1ba8
lea ecx, [ebp - 0x420]
call fcn.100ae850
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x440]
call fcn.100ae910
mov edx, dword [ebp - 0x40c]
cmp edx, 0x10
jb 0x100abbba
mov ecx, dword [ebp - 0x420]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100abbb0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda4
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp dword [ebp - 0x42c], 0x10
lea ecx, [ebp - 0x670]
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
mov dword [ebp - 0x6a4], 0
mov dword [ebp - 0x680], esi
or edi, 0xffffffff
nop dword [eax]
nop word [eax + eax]
lea ecx, [ebp - 0x644]
mov dword [ebp - 0x494], 0
mov dword [ebp - 0x490], 0xf
lea edx, [ecx + 1]
mov byte [ebp - 0x4a4], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100abc24
sub ecx, edx
lea eax, [ebp - 0x644]
push ecx
push eax
lea ecx, [ebp - 0x4a4]
call fcn.100af160
test byte [ebp - 0x670], 0x10
jne 0x100ac8e9
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6dc], 0xf
mov byte [ebp - 0x6f0], 0
lea ecx, [eax - 2]
cmp eax, ecx
cmovb ecx, eax
cmp dword [ebp - 0x42c], 0x10
lea eax, [ebp - 0x440]
cmovae eax, dword [ebp - 0x440]
push ecx
push eax
lea ecx, [ebp - 0x6f0]
call fcn.100af160
push 0x100f72fc
lea ecx, [ebp - 0x6f0]
call fcn.100ae850
lea edx, [ebp - 0x710]
lea ecx, [ebp - 0x470]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x710], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x700], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x4a4]
push eax
call fcn.100af660
mov edx, dword [ebp - 0x6fc]
add esp, 4
cmp edx, 0x10
jb 0x100abd24
mov ecx, dword [ebp - 0x710]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100abd1a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x6dc]
mov dword [ebp - 0x700], 0
mov dword [ebp - 0x6fc], 0xf
mov byte [ebp - 0x710], 0
cmp edx, 0x10
jb 0x100abd79
mov ecx, dword [ebp - 0x6f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100abd6f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x730]
call fcn.100ae9d0
mov esi, dword [ebp - 0x720]
xor edi, edi
test esi, esi
je 0x100abe84
nop dword [eax + eax]
cmp dword [ebp - 0x71c], 0x10
lea ecx, [ebp - 0x730]
push 1
cmovae ecx, dword [ebp - 0x730]
mov edx, esi
push 0x100ede7c
push ecx
call fcn.100b01e0
add esp, 0xc
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6dc], 0xf
mov byte [ebp - 0x6f0], 0
lea edx, [eax + 1]
cmp esi, edx
jb 0x100acd9a
sub esi, edx
lea eax, [ebp - 0x730]
mov ecx, 0xff
cmp esi, ecx
cmovb ecx, esi
cmp dword [ebp - 0x71c], 0x10
push ecx
cmovae eax, dword [ebp - 0x730]
lea ecx, [ebp - 0x6f0]
add eax, edx
push eax
call fcn.100af160
mov edx, dword [ebp - 0x71c]
cmp edx, 0x10
jb 0x100abe55
mov ecx, dword [ebp - 0x730]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100abe4b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
movq xmm1, qword [ebp - 0x6e0]
inc edi
movaps xmm0, xmmword [ebp - 0x6f0]
movq qword [ebp - 0x720], xmm1
mov esi, dword [ebp - 0x720]
movaps xmmword [ebp - 0x730], xmm0
cmp edi, esi
jb 0x100abda0
jmp 0x100abe93
movq xmm1, qword [ebp - 0x720]
movaps xmm0, xmmword [ebp - 0x730]
push 0
push 0x100ede68
lea ecx, [ebp - 0x420]
movaps xmmword [ebp - 0x6d0], xmm0
movq qword [ebp - 0x6c0], xmm1
mov dword [ebp - 0x720], 0
mov dword [ebp - 0x71c], 0xf
mov byte [ebp - 0x730], 0
mov dword [ebp - 0x410], 0
mov dword [ebp - 0x40c], 0xf
mov byte [ebp - 0x420], 0
call fcn.100af160
mov edx, dword [ebp - 0x6d0]
xor esi, esi
mov dword [ebp - 0x674], edx
cmp dword [ebp - 0x6c0], esi
jle 0x100abfb8
nop dword [eax]
nop dword [eax + eax]
cmp dword [ebp - 0x6bc], 0x10
lea eax, [ebp - 0x6d0]
mov edi, dword [ebp - 0x40c]
cmovae eax, edx
mov edx, dword [ebp - 0x410]
mov cl, byte [eax + esi]
mov al, cl
mov byte [ebp - 0x758], cl
sub al, 0x41
cmp al, 0x1b
ja 0x100abf5f
add cl, 0x20
mov byte [ebp - 0x474], cl
cmp edx, edi
jb 0x100abf63
push dword [ebp - 0x474]
mov byte [ebp - 0x754], 0
push dword [ebp - 0x754]
jmp 0x100abf99
cmp edx, edi
jae 0x100abf86
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 0x100abfa5
push dword [ebp - 0x758]
mov byte [ebp - 0x75c], 0
push dword [ebp - 0x75c]
push ecx
lea ecx, [ebp - 0x420]
call fcn.100b02c0
mov edx, dword [ebp - 0x674]
inc esi
cmp esi, dword [ebp - 0x6c0]
jl 0x100abf10
mov eax, dword [ebp - 0x6bc]
cmp eax, 0x10
jb 0x100abfee
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100abfe4
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push ecx
push edx
call fcn.100baf94
add esp, 8
or dword [ebp - 0x678], 1
sub esp, 0x18
mov ecx, esp
push 0x100fdbd8
call fcn.100ae9d0
lea ecx, [ebp - 0x518]
call fcn.10083b80
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100ac01c
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 - 0x674], esi
cmp edi, dword [eax + 0x10]
jne 0x100ac0ad
mov esi, edi
sub esi, 4
jb 0x100ac061
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ac06a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ac050
cmp esi, 0xfffffffc
je 0x100ac333
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100ac0a7
cmp esi, 0xfffffffd
je 0x100ac333
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ac0a7
cmp esi, 0xfffffffe
je 0x100ac333
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ac0a7
cmp esi, 0xffffffff
je 0x100ac333
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100ac333
mov esi, dword [ebp - 0x674]
or dword [ebp - 0x678], 2
sub esp, 0x18
mov ecx, esp
push 0x100fe370
call fcn.100ae9d0
lea ecx, [ebp - 0x6a0]
call fcn.10083b80
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100ac0db
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100ac154
mov esi, edi
sub esi, 4
jb 0x100ac108
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ac111
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ac0f7
cmp esi, 0xfffffffc
je 0x100ac333
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100ac14e
cmp esi, 0xfffffffd
je 0x100ac333
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ac14e
cmp esi, 0xfffffffe
je 0x100ac333
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ac14e
cmp esi, 0xffffffff
je 0x100ac333
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100ac333
mov esi, dword [ebp - 0x674]
or dword [ebp - 0x678], 4
sub esp, 0x18
mov ecx, esp
push 0x100fde78
call fcn.100ae9d0
lea ecx, [ebp - 0x774]
call fcn.10083b80
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100ac182
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100ac1fd
mov esi, edi
sub esi, 4
jb 0x100ac1b1
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ac1ba
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ac1a0
cmp esi, 0xfffffffc
je 0x100ac333
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100ac1f7
cmp esi, 0xfffffffd
je 0x100ac333
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ac1f7
cmp esi, 0xfffffffe
je 0x100ac333
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ac1f7
cmp esi, 0xffffffff
je 0x100ac333
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100ac333
mov esi, dword [ebp - 0x674]
or dword [ebp - 0x678], 8
sub esp, 0x18
mov ecx, esp
push 0x100fdcf8
call fcn.100ae9d0
lea ecx, [ebp - 0x710]
call fcn.10083b80
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100ac22b
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100ac2a4
mov esi, edi
sub esi, 4
jb 0x100ac258
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ac261
add ecx, 4
add edx, 4
sub esi, 4
jae 0x100ac247
cmp esi, 0xfffffffc
je 0x100ac333
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100ac29e
cmp esi, 0xfffffffd
je 0x100ac333
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ac29e
cmp esi, 0xfffffffe
je 0x100ac333
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ac29e
cmp esi, 0xffffffff
je 0x100ac333
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x100ac333
mov esi, dword [ebp - 0x674]
or dword [ebp - 0x678], 0x10
sub esp, 0x18
mov ecx, esp
push 0x100fdb18
call fcn.100ae9d0
lea ecx, [ebp - 0x6f0]
call fcn.10083b80
add esp, 0x18
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x100ac2d2
mov edx, dword [eax]
cmp dword [ebp - 0x40c], 0x10
lea ecx, [ebp - 0x420]
cmovae ecx, esi
cmp edi, dword [eax + 0x10]
jne 0x100ac33c
sub edi, 4
jb 0x100ac301
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x100ac306
add ecx, 4
add edx, 4
sub edi, 4
jae 0x100ac2f0
cmp edi, 0xfffffffc
je 0x100ac333
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100ac33c
cmp edi, 0xfffffffd
je 0x100ac333
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x100ac33c
cmp edi, 0xfffffffe
je 0x100ac333
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x100ac33c
cmp edi, 0xffffffff
je 0x100ac333
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x100ac33c
mov byte [ebp - 0x679], 1
jmp 0x100ac343
mov byte [ebp - 0x679], 0
mov eax, dword [ebp - 0x678]
test al, 0x10
je 0x100ac3b1
mov edx, dword [ebp - 0x6dc]
and eax, 0xffffffef
mov dword [ebp - 0x678], eax
cmp edx, 0x10
jb 0x100ac396
mov ecx, dword [ebp - 0x6f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac386
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
mov eax, dword [ebp - 0x678]
add esp, 8
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6dc], 0xf
mov byte [ebp - 0x6f0], 0
test al, 8
je 0x100ac419
mov edx, dword [ebp - 0x6fc]
and eax, 0xfffffff7
mov dword [ebp - 0x678], eax
cmp edx, 0x10
jb 0x100ac3fe
mov ecx, dword [ebp - 0x710]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac3ee
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
mov eax, dword [ebp - 0x678]
add esp, 8
mov dword [ebp - 0x700], 0
mov dword [ebp - 0x6fc], 0xf
mov byte [ebp - 0x710], 0
test al, 4
je 0x100ac481
mov edx, dword [ebp - 0x760]
and eax, 0xfffffffb
mov dword [ebp - 0x678], eax
cmp edx, 0x10
jb 0x100ac466
mov ecx, dword [ebp - 0x774]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac456
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
mov eax, dword [ebp - 0x678]
add esp, 8
mov dword [ebp - 0x764], 0
mov dword [ebp - 0x760], 0xf
mov byte [ebp - 0x774], 0
test al, 2
je 0x100ac4e9
mov edx, dword [ebp - 0x68c]
and eax, 0xfffffffd
mov dword [ebp - 0x678], eax
cmp edx, 0x10
jb 0x100ac4ce
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac4be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
mov eax, dword [ebp - 0x678]
add esp, 8
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x68c], 0xf
mov byte [ebp - 0x6a0], 0
mov edx, dword [ebp - 0x504]
and eax, 0xfffffffe
mov dword [ebp - 0x678], eax
cmp edx, 0x10
jb 0x100ac52c
mov ecx, dword [ebp - 0x518]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac522
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp byte [ebp - 0x679], 0
je 0x100ac85b
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x6a0]
call fcn.100ae9d0
cmp dword [ebp - 0x68c], 0x10
lea ecx, [ebp - 0x530]
lea eax, [ebp - 0x6a0]
cmovae eax, dword [ebp - 0x6a0]
push ecx
push eax
call fcn.100c6c25
mov edx, dword [ebp - 0x68c]
or edi, 0xffffffff
add esp, 8
mov esi, edi
test eax, eax
cmove esi, dword [ebp - 0x51c]
cmp edx, 0x10
jb 0x100ac5b7
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac5ad
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp esi, 0x32000
jge 0x100ac85e
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x750]
call fcn.100ae9d0
mov esi, dword [ebp - 0x740]
xor edi, edi
test esi, esi
je 0x100ac6d4
nop word [eax + eax]
cmp dword [ebp - 0x73c], 0x10
lea ecx, [ebp - 0x750]
push 1
cmovae ecx, dword [ebp - 0x750]
mov edx, esi
push 0x100f72fc
push ecx
call fcn.100b01e0
add esp, 0xc
mov dword [ebp - 0x690], 0
mov dword [ebp - 0x68c], 0xf
mov byte [ebp - 0x6a0], 0
lea edx, [eax + 1]
cmp esi, edx
jb 0x100acd9a
sub esi, edx
lea eax, [ebp - 0x750]
mov ecx, 0xff
cmp esi, ecx
cmovb ecx, esi
cmp dword [ebp - 0x73c], 0x10
push ecx
cmovae eax, dword [ebp - 0x750]
lea ecx, [ebp - 0x6a0]
add eax, edx
push eax
call fcn.100af160
mov edx, dword [ebp - 0x73c]
cmp edx, 0x10
jb 0x100ac6a5
mov ecx, dword [ebp - 0x750]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac69b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
movq xmm1, qword [ebp - 0x690]
inc edi
movaps xmm0, xmmword [ebp - 0x6a0]
movq qword [ebp - 0x740], xmm1
mov esi, dword [ebp - 0x740]
movaps xmmword [ebp - 0x750], xmm0
cmp edi, esi
jb 0x100ac5f0
jmp 0x100ac6e3
movq xmm1, qword [ebp - 0x740]
movaps xmm0, xmmword [ebp - 0x750]
lea eax, [ebp - 0x710]
movaps xmmword [ebp - 0x710], xmm0
push eax
lea eax, [ebp - 0x4bc]
movq qword [ebp - 0x700], xmm1
push eax
lea edx, [ebp - 0x48c]
mov dword [ebp - 0x740], 0
lea ecx, [ebp - 0x6f0]
mov dword [ebp - 0x73c], 0xf
mov byte [ebp - 0x750], 0
call fcn.100af700
add esp, 4
lea ecx, [ebp - 0x774]
mov edx, eax
call fcn.100af560
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100ac747
mov eax, dword [eax]
cmp dword [ebp - 0x45c], 0x10
lea ecx, [ebp - 0x470]
push 1
cmovae ecx, dword [ebp - 0x470]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov edx, dword [ebp - 0x760]
cmp edx, 0x10
jb 0x100ac79f
mov ecx, dword [ebp - 0x774]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac795
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x6dc]
mov dword [ebp - 0x764], 0
mov dword [ebp - 0x760], 0xf
mov byte [ebp - 0x774], 0
cmp edx, 0x10
jb 0x100ac7f4
mov ecx, dword [ebp - 0x6f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac7ea
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6dc], 0xf
mov byte [ebp - 0x6f0], 0
cmp edx, 0x10
jb 0x100ac849
mov ecx, dword [ebp - 0x710]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac83f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acd81
push edx
push ecx
call fcn.100baf94
add esp, 8
mov eax, dword [ebp - 0x6a4]
inc eax
or edi, 0xffffffff
mov dword [ebp - 0x6a4], eax
jmp 0x100ac864
or edi, 0xffffffff
mov eax, dword [ebp - 0x6a4]
cmp eax, 0x14
mov eax, dword [ebp - 0x40c]
je 0x100ac93e
cmp eax, 0x10
jb 0x100ac8a9
mov edx, dword [ebp - 0x674]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100ac89f
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda9
push ecx
push edx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x45c]
cmp edx, 0x10
jb 0x100ac8e3
mov ecx, dword [ebp - 0x470]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac8d9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda9
push edx
push ecx
call fcn.100baf94
add esp, 8
mov esi, dword [ebp - 0x680]
mov edx, dword [ebp - 0x490]
cmp edx, 0x10
jb 0x100ac923
mov ecx, dword [ebp - 0x4a4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac919
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
lea eax, [ebp - 0x670]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x100abc00
jmp 0x100aca09
cmp eax, 0x10
jb 0x100ac974
mov edx, dword [ebp - 0x674]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100ac96a
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda9
push ecx
push edx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x45c]
cmp edx, 0x10
jb 0x100ac9ae
mov ecx, dword [ebp - 0x470]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac9a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda9
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x490]
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0xf
mov byte [ebp - 0x470], 0
cmp edx, 0x10
jb 0x100aca03
mov ecx, dword [ebp - 0x4a4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100ac9f9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acda9
push edx
push ecx
call fcn.100baf94
add esp, 8
mov esi, dword [ebp - 0x680]
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x4bc]
push eax
lea edx, [ebp - 0x48c]
lea ecx, [ebp - 0x518]
call fcn.100af700
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x100aca33
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x100aca48
mov byte [ebp - 0x680], 0
jmp 0x100aca53
shr al, 4
and al, 1
mov dword [ebp - 0x680], eax
mov edx, dword [ebp - 0x504]
cmp edx, 0x10
jb 0x100aca8d
mov ecx, dword [ebp - 0x518]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100aca83
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdae
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp byte [ebp - 0x680], 0
je 0x100acb00
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x100fdc68
call fcn.100ae9d0
mov ecx, esi
call fcn.10083b80
lea eax, [ebp - 0x458]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
lea eax, [ebp - 0x4bc]
mov ecx, esp
lea edx, [ebp - 0x48c]
push eax
call fcn.100af700
add esp, 4
call fcn.10085920
add esp, 0x30
lea eax, [ebp - 0x4bc]
mov ecx, esp
lea edx, [ebp - 0x48c]
push eax
call fcn.100af700
add esp, 4
call fcn.100862d0
add esp, 0x18
cmp dword [ebp - 0x444], 0x10
lea eax, [ebp - 0x458]
push 0x100f7320
cmovae eax, dword [ebp - 0x458]
push eax
call fcn.100c4b2d
add esp, 8
test eax, eax
je 0x100acbfb
push eax
call fcn.100c4bbb
add esp, 4
lea eax, [ebp - 0x458]
lea ecx, [ebp - 0x6a0]
push eax
call fcn.100ae9d0
cmp dword [ebp - 0x68c], 0x10
lea ecx, [ebp - 0x530]
lea eax, [ebp - 0x6a0]
cmovae eax, dword [ebp - 0x6a0]
push ecx
push eax
call fcn.100c6c25
mov edx, dword [ebp - 0x68c]
add esp, 8
test eax, eax
cmove edi, dword [ebp - 0x51c]
cmp edx, 0x10
jb 0x100acbac
mov ecx, dword [ebp - 0x6a0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acba2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb3
push edx
push ecx
call fcn.100baf94
add esp, 8
cmp edi, 0x400
jle 0x100acbde
sub esp, 0x18
lea eax, [ebp - 0x500]
mov ecx, esp
push eax
call fcn.100ae9d0
sub esp, 0x18
lea eax, [ebp - 0x458]
mov ecx, esp
push eax
call fcn.100ae9d0
call fcn.10085c50
add esp, 0x30
cmp dword [ebp - 0x444], 0x10
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
call fcn.100c4dc5
add esp, 4
mov edx, dword [ebp - 0x4a8]
cmp edx, 0x10
jb 0x100acc35
mov ecx, dword [ebp - 0x4bc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acc2b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x478]
cmp edx, 0x10
jb 0x100acc6f
mov ecx, dword [ebp - 0x48c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acc65
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x444]
cmp edx, 0x10
jb 0x100acca9
mov ecx, dword [ebp - 0x458]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acc9f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x4ec]
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0xf
mov byte [ebp - 0x458], 0
cmp edx, 0x10
jb 0x100accfe
mov ecx, dword [ebp - 0x500]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100accf4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x4c0]
cmp edx, 0x10
jb 0x100acd38
mov ecx, dword [ebp - 0x4d4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acd2e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov edx, dword [ebp - 0x42c]
cmp edx, 0x10
jb 0x100acd6e
mov ecx, dword [ebp - 0x440]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100acd64
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100acdb8
push edx
push ecx
call fcn.100baf94
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100baa39
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100af3a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
call fcn.100c79a0
int3