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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52bceb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x258
push esi
push edi
mov dword [ebp - 0x104], ecx
push 0x104
lea eax, [ebp - 0x268]
mov dword [ebp - 4], 1
push 0
push eax
call fcn.00506f10
add esp, 0xc
lea eax, [ebp - 0x268]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov byte [ebp - 0x78], 0xf3
movups xmmword [ebp - 0x77], xmm0
mov dword [ebp - 0x67], 0
xor ecx, ecx
mov word [ebp - 0x63], 0
mov byte [ebp - 0x61], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x78], al
inc ecx
cmp ecx, 1
jb 0x414680
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x77], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4146b3
sub ecx, edx
lea eax, [ebp - 0x78]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402c40
mov byte [ebp - 4], 2
lea edx, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x15c], xmm0
cmovae edx, dword [ebp - 0x58]
mov ecx, edx
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414700
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x15c]
call fcn.00402c40
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 3
push eax
lea edx, [ebp - 0x268]
lea ecx, [ebp - 0x94]
call fcn.00490af0
add esp, 4
lea ecx, [ebx + 8]
mov byte [ebp - 4], 4
push ecx
mov ecx, eax
call fcn.0048ca40
mov dword [ebp - 0xb8], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0xb4], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xc8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xb8], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x80]
cmp ecx, 0x10
jb 0x4147c5
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4147bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415a82
push ecx
push edx
call fcn.00504f31
add esp, 8
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x148]
cmp ecx, 0x10
jb 0x41481b
mov edx, dword [ebp - 0x15c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414811
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415a82
push ecx
push edx
call fcn.00504f31
add esp, 8
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0xf
mov byte [ebp - 0x15c], 0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x44]
cmp ecx, 0x10
jb 0x41486e
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414864
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415a82
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0xb4], 0x10
lea esi, [ebp - 0xc8]
push 0x5651d0
cmovae esi, dword [ebp - 0xc8]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x415a87
test esi, esi
je 0x415993
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4148a4
sub ecx, edx
je 0x415993
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4148dd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4148dd
cmp eax, 0x20
je 0x4148dd
cmp eax, 0x45
je 0x4148dd
cmp eax, 0x24
jne 0x415993
push 0x5651d0
call fcn.00504243
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0xded0c7f3
add esp, 4
mov dword [ebp - 0x38], 0x98c1d1df
mov word [ebp - 0x34], 0xd9d3
xor ecx, ecx
mov byte [ebp - 0x32], 0xcd
movups xmmword [ebp - 0x31], xmm0
mov dword [ebp - 0x21], 0
mov word [ebp - 0x1d], 0
mov byte [ebp - 0x1b], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0xb
jb 0x414920
mov dword [0x565530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x31], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414953
sub ecx, edx
lea eax, [ebp - 0x3c]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402c40
mov byte [ebp - 4], 9
lea esi, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
cmovae esi, dword [ebp - 0x58]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x18], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414985
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xb8]
sub eax, edx
cmp eax, ecx
jb 0x415a8d
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
mov ecx, edi
call fcn.004946d0
call fcn.0040dee0
mov byte [ebp - 4], 8
add esp, 0x18
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x414a0c
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4149ff
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af5
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4150bc
xorps xmm0, xmm0
mov byte [ebp - 0x56], 0xf3
movups xmmword [ebp - 0x55], xmm0
mov dword [ebp - 0x45], 0
xor ecx, ecx
mov word [ebp - 0x41], 0
mov byte [ebp - 0x3f], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x56], al
inc ecx
cmp ecx, 1
jb 0x414a32
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x56]
mov byte [ebp - 0x55], 0
movups xmmword [ebp - 0xe4], xmm0
mov dword [ebp - 0xd4], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xd0], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414a70
sub ecx, edx
lea eax, [ebp - 0x56]
push ecx
push eax
lea ecx, [ebp - 0xe4]
call fcn.00402c40
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0xe4]
cmp dword [ebp - 0xd0], 0x10
cmovae esi, dword [ebp - 0xe4]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414aa6
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x415a92
cmp dword [ebx + 0x34], 0x10
lea eax, [ebx + 0x20]
push ecx
cmovae eax, dword [ebx + 0x20]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x78]
call fcn.004946d0
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov esi, dword [ebp - 0x64]
mov eax, esi
cmovae ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp - 0x68]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x414b23
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x78]
cmovae eax, dword [ebp - 0x78]
lea esi, [eax + edx]
push esi
call fcn.00506990
add esp, 0xc
mov byte [esi + edi], 0
lea eax, [ebp - 0x78]
jmp 0x414b33
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x78]
push dword [ebp - 0x18]
push edi
call fcn.00492b30
mov dword [ebp - 0xf0], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x100], xmm0
mov dword [ebp - 0xec], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x100], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xf0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x414bb1
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414ba7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415a97
push ecx
push edx
call fcn.00504f31
add esp, 8
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xd0]
cmp ecx, 0x10
jb 0x414c01
mov edx, dword [ebp - 0xe4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414bf7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415a97
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0xec], 0x10
lea esi, [ebp - 0x100]
push 0x5651d0
cmovae esi, dword [ebp - 0x100]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x415a9c
test esi, esi
je 0x414c73
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414c33
sub ecx, edx
je 0x414c73
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414c64
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414c64
cmp eax, 0x20
je 0x414c64
cmp eax, 0x45
je 0x414c64
cmp eax, 0x24
jne 0x414c73
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x414ca5
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0x100]
cmp dword [ebp - 0xec], 0x10
cmovae eax, dword [ebp - 0x100]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41507e
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0xded0c7f3
mov dword [ebp - 0x5c], 0x98c1d1df
xor ecx, ecx
mov word [ebp - 0x58], 0xd9d3
mov byte [ebp - 0x56], 0xcd
movups xmmword [ebp - 0x55], xmm0
mov dword [ebp - 0x45], 0
mov word [ebp - 0x41], 0
mov byte [ebp - 0x3f], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x60], al
inc ecx
cmp ecx, 0xb
jb 0x414cd7
mov dword [0x565530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x60]
mov byte [ebp - 0x55], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414d10
sub ecx, edx
lea eax, [ebp - 0x60]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402c40
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
cmovae esi, dword [ebp - 0x34]
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414d40
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xf0]
sub eax, edx
cmp eax, ecx
jb 0x415aa2
cmp dword [ebp - 0xec], 0x10
lea eax, [ebp - 0x100]
push ecx
cmovae eax, dword [ebp - 0x100]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x120]
call fcn.004946d0
mov byte [ebp - 4], 0x10
lea edi, [ebp - 0x120]
cmp dword [ebp - 0x10c], 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x142], 0xded0c7f3
cmovae edi, dword [ebp - 0x120]
xor ecx, ecx
mov dword [ebp - 0x13e], 0x98c1d1df
mov word [ebp - 0x13a], 0xd9d3
mov byte [ebp - 0x138], 0xcd
movups xmmword [ebp - 0x137], xmm0
mov dword [ebp - 0x127], 0
mov word [ebp - 0x123], 0
mov byte [ebp - 0x121], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x142], al
inc ecx
cmp ecx, 0xb
jb 0x414df0
mov dword [0x565530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x142]
mov byte [ebp - 0x137], 0
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x44], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414e30
sub ecx, edx
lea eax, [ebp - 0x142]
push ecx
push eax
lea ecx, [ebp - 0x58]
call fcn.00402c40
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x58]
cmp dword [ebp - 0x44], 0x10
cmovae esi, dword [ebp - 0x58]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414e60
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xb8]
sub eax, edx
cmp eax, ecx
jb 0x415aa7
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xe4]
call fcn.004946d0
cmp dword [ebp - 0xd0], 0x10
lea eax, [ebp - 0xe4]
push 0
cmovae eax, dword [ebp - 0xe4]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [ebp - 0xd0]
mov esi, eax
cmp ecx, 0x10
jb 0x414eff
mov edx, dword [ebp - 0xe4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414ef5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415aac
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0xf
mov byte [ebp - 0xe4], 0
cmp ecx, 0x10
jb 0x414f52
mov edx, dword [ebp - 0x58]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414f48
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415aac
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x10c]
cmp ecx, 0x10
jb 0x414f90
mov edx, dword [ebp - 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414f86
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415aac
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0xf
mov byte [ebp - 0x120], 0
cmp ecx, 0x10
jb 0x414fe3
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414fd9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415aac
push ecx
push edx
call fcn.00504f31
add esp, 8
test esi, esi
je 0x414ff5
mov eax, dword [ebp - 0x104]
mov byte [eax], 1
jmp 0x41507e
cmp dword [ebp - 0xec], 0x10
lea edx, [ebp - 0x100]
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
cmovae edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415023
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00402c40
push ecx
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x12
call fcn.0040e110
mov byte [ebp - 4], 0xe
add esp, 4
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x41507e
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415074
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ab1
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xec]
cmp ecx, 0x10
jb 0x4150bc
mov edx, dword [ebp - 0x100]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4150b2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ab6
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0xe8], 0xded0c7f3
mov dword [ebp - 0xe4], 0xc5c1d1df
xor ecx, ecx
movups xmmword [ebp - 0xe0], xmm0
mov dword [ebp - 0xd0], 0
mov word [ebp - 0xcc], 0
mov byte [ebp - 0xca], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xe8], al
inc ecx
cmp ecx, 8
jb 0x415100
mov dword [0x565624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xe8]
mov byte [ebp - 0xe0], 0
movups xmmword [ebp - 0x120], xmm0
mov dword [ebp - 0x110], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x10c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415145
sub ecx, edx
lea eax, [ebp - 0xe8]
push ecx
push eax
lea ecx, [ebp - 0x120]
call fcn.00402c40
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0x120]
cmp dword [ebp - 0x10c], 0x10
cmovae esi, dword [ebp - 0x120]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415180
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebp - 0xb8]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x415abb
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x34]
call fcn.004946d0
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
push 0x5651d0
cmovae esi, dword [ebp - 0x34]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x415ac0
test esi, esi
je 0x415232
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4151f1
sub ecx, edx
je 0x415232
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x415222
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x415222
cmp eax, 0x20
je 0x415222
cmp eax, 0x45
je 0x415222
cmp eax, 0x24
jne 0x415232
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 1
jmp 0x415240
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x13
add esp, 4
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x41527b
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415271
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ac6
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp ecx, 0x10
jb 0x4152cb
mov edx, dword [ebp - 0x120]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4152c1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ac6
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x4159a0
xorps xmm0, xmm0
mov byte [ebp - 0x56], 0xf3
movups xmmword [ebp - 0x55], xmm0
mov dword [ebp - 0x45], 0
xor ecx, ecx
mov word [ebp - 0x41], 0
mov byte [ebp - 0x3f], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x56], al
inc ecx
cmp ecx, 1
jb 0x4152f3
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x56]
mov byte [ebp - 0x55], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415326
sub ecx, edx
lea eax, [ebp - 0x56]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402c40
mov byte [ebp - 4], 0x15
lea esi, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
cmovae esi, dword [ebp - 0x34]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415350
sub ecx, edx
mov eax, edi
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x415acb
cmp dword [ebx + 0x34], 0x10
lea eax, [ebx + 0x20]
push ecx
cmovae eax, dword [ebx + 0x20]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x78]
call fcn.004946d0
mov byte [ebp - 4], 0x16
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov esi, dword [ebp - 0x64]
mov eax, esi
cmovae ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp - 0x68]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x4153ca
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x78]
cmovae eax, dword [ebp - 0x78]
lea esi, [eax + edx]
push esi
call fcn.00506990
add esp, 0xc
mov byte [esi + edi], 0
lea eax, [ebp - 0x78]
jmp 0x4153da
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x78]
push dword [ebp - 0x18]
push edi
call fcn.00492b30
mov dword [ebp - 0xa0], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x9c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xb0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xa0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x415458
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41544e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ad0
push ecx
push edx
call fcn.00504f31
add esp, 8
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x10
jb 0x4154a2
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415498
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415ad0
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x9c], 0x10
lea esi, [ebp - 0xb0]
push 0x5651d0
cmovae esi, dword [ebp - 0xb0]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x415ad5
test esi, esi
je 0x415516
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4154d4
sub ecx, edx
je 0x415516
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
call edi
cmp eax, 0xffffffff
jne 0x415507
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x415507
cmp eax, 0x20
je 0x415507
cmp eax, 0x45
je 0x415507
cmp eax, 0x24
jne 0x41551c
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x41554e
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0xb0]
cmp dword [ebp - 0x9c], 0x10
cmovae eax, dword [ebp - 0xb0]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x415957
xorps xmm0, xmm0
mov dword [ebp - 0x98], 0xded0c7f3
mov dword [ebp - 0x94], 0xc5c1d1df
xor ecx, ecx
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x80], 0
mov word [ebp - 0x7c], 0
mov byte [ebp - 0x7a], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x98], al
inc ecx
cmp ecx, 8
jb 0x415580
mov dword [0x565624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x98]
mov byte [ebp - 0x90], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4155c0
sub ecx, edx
lea eax, [ebp - 0x98]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402c40
mov byte [ebp - 4], 0x1a
lea esi, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
cmovae esi, dword [ebp - 0x34]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4155f0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xa0]
sub eax, edx
cmp eax, ecx
jb 0x415adb
cmp dword [ebp - 0x9c], 0x10
lea eax, [ebp - 0xb0]
push ecx
cmovae eax, dword [ebp - 0xb0]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x94]
call fcn.004946d0
mov ecx, dword [ebp - 0x9c]
cmp ecx, 0x10
jb 0x41566f
mov edx, dword [ebp - 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415665
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af0
push ecx
push edx
call fcn.00504f31
add esp, 8
movups xmm0, xmmword [ebp - 0x94]
movups xmmword [ebp - 0xb0], xmm0
movq xmm0, qword [ebp - 0x84]
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x20]
movq qword [ebp - 0xa0], xmm0
cmp ecx, 0x10
jb 0x4156c5
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4156bb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af0
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x9c], 0x10
lea esi, [ebp - 0xb0]
push 0x5651d0
cmovae esi, dword [ebp - 0xb0]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x415ae0
test esi, esi
je 0x415733
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4156f7
sub ecx, edx
je 0x415733
push esi
call edi
cmp eax, 0xffffffff
jne 0x415724
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x415724
cmp eax, 0x20
je 0x415724
cmp eax, 0x45
je 0x415724
cmp eax, 0x24
jne 0x415733
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x415765
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0xb0]
cmp dword [ebp - 0x9c], 0x10
cmovae eax, dword [ebp - 0xb0]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x415957
sub esp, 0x18
mov dword [ebp - 0x98], 0xded0c7f3
lea eax, [ebp - 0xb0]
mov dword [ebp - 0x18], esp
xorps xmm0, xmm0
mov dword [ebp - 0x94], 0xc5c1d1df
mov ecx, esp
mov dword [ebp - 0x80], 0
push eax
movups xmmword [ebp - 0x90], xmm0
mov word [ebp - 0x7c], 0
mov byte [ebp - 0x7a], 0
mov byte [ebp - 0x11], 0
call fcn.0048ccc0
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x98], al
inc ecx
cmp ecx, 8
jb 0x4157b2
mov dword [0x565624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x98]
mov byte [ebp - 0x90], 0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4157f0
sub ecx, edx
lea eax, [ebp - 0x98]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.00402c40
mov byte [ebp - 4], 0x1c
lea esi, [ebp - 0x34]
cmp dword [ebp - 0x20], 0x10
cmovae esi, dword [ebp - 0x34]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x108], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415828
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0xb8]
sub eax, edx
cmp eax, ecx
jb 0x415ae6
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x108]
mov ecx, edi
call fcn.004946d0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x1d
call fcn.00412980
add esp, 0x30
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x20]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x4158be
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4158b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af0
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4158d0
mov eax, dword [ebp - 0x104]
mov byte [eax], 1
jmp 0x415957
cmp dword [ebp - 0x9c], 0x10
lea edx, [ebp - 0xb0]
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
cmovae edx, dword [ebp - 0xb0]
mov ecx, edx
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea esi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415900
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x34]
call fcn.00402c40
push ecx
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x1e
call fcn.0040e110
mov ecx, dword [ebp - 0x20]
add esp, 4
cmp ecx, 0x10
jb 0x415957
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41594d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415aeb
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebp - 0x9c]
cmp ecx, 0x10
jb 0x4159a0
mov edx, dword [ebp - 0xb0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415987
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af0
push ecx
push edx
call fcn.00504f31
add esp, 8
jmp 0x4159a0
push 0x5651d0
call fcn.00504243
add esp, 4
mov ecx, dword [ebp - 0xb4]
cmp ecx, 0x10
jb 0x4159da
mov edx, dword [ebp - 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4159d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af5
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0xf
mov byte [ebp - 0xc8], 0
cmp ecx, 0x10
jb 0x415a29
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415a1f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af5
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebx + 0x34]
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0xf
mov byte [ebx + 8], 0
cmp ecx, 0x10
jb 0x415a6f
mov edx, dword [ebx + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x415a65
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x415af5
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0050a1d0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.004024b0
call fcn.0050a1d0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.004024b0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.0050a1d0
call fcn.004024b0
call fcn.0050a1d0
push eax
call fcn.00503edb
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
int3