Function at 0x413bf0
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 0x521e9b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x220
push esi
push edi
mov dword [ebp - 0xac], ecx
push 0x104
lea eax, [ebp - 0x230]
mov dword [ebp - 4], 1
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x230]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov byte [ebp - 0x23], 0xdb
movq qword [ebp - 0x22], xmm0
xor ecx, ecx
mov word [ebp - 0x1a], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 1
jb 0x413c70
mov dword [0x55d620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x23]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x4c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413ca3
sub ecx, edx
lea eax, [ebp - 0x23]
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.00402b80
mov byte [ebp - 4], 2
lea edx, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0xf8], xmm0
cmovae edx, dword [ebp - 0x60]
mov ecx, edx
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413cf0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0xf8]
call fcn.00402b80
lea eax, [ebp - 0xf8]
mov byte [ebp - 4], 3
push eax
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x128]
call fcn.00486e40
add esp, 4
lea ecx, [ebx + 8]
mov byte [ebp - 4], 4
push ecx
mov ecx, eax
call fcn.00482d90
mov dword [ebp - 0x80], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x7c], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x90], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x80], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x114]
cmp ecx, 0x10
jb 0x413daf
mov edx, dword [ebp - 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413da5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414ef3
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0xf
mov byte [ebp - 0x128], 0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xe4]
cmp ecx, 0x10
jb 0x413e08
mov edx, dword [ebp - 0xf8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413dfe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414ef3
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xe4], 0xf
mov byte [ebp - 0xf8], 0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x413e5b
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413e51
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414ef3
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x7c], 0x10
lea esi, [ebp - 0x90]
push 0x55d1d0
cmovae esi, dword [ebp - 0x90]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x414ef8
test esi, esi
je 0x414e0d
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413e90
sub ecx, edx
je 0x414e0d
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413ec9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413ec9
cmp eax, 0x20
je 0x413ec9
cmp eax, 0x45
je 0x413ec9
cmp eax, 0x24
jne 0x414e0d
push 0x55d1d0
call fcn.004fa403
movaps xmm0, xmmword [0x5478d0]
add esp, 4
mov dword [ebp - 0x2d], 0xe6e8ffdb
xor ecx, ecx
mov byte [ebp - 0x29], 0xe7
movups xmmword [ebp - 0x28], xmm0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xb
jb 0x413ef0
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2d]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x4c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413f23
sub ecx, edx
lea eax, [ebp - 0x2d]
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.00402b80
mov byte [ebp - 4], 9
lea esi, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0x10
cmovae esi, dword [ebp - 0x60]
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 0x413f55
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x80]
sub eax, edx
cmp eax, ecx
jb 0x414efe
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push ecx
cmovae eax, dword [ebp - 0x90]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
mov ecx, edi
call fcn.0048aa20
call fcn.0040da60
mov byte [ebp - 4], 8
add esp, 0x18
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x413fd6
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413fc9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f66
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x414629
xorps xmm0, xmm0
mov byte [ebp - 0x23], 0xdb
movq qword [ebp - 0x22], xmm0
xor ecx, ecx
mov word [ebp - 0x1a], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 1
jb 0x413ff2
mov dword [0x55d620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x23]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0xb8], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xb4], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414030
sub ecx, edx
lea eax, [ebp - 0x23]
push ecx
push eax
lea ecx, [ebp - 0xc8]
call fcn.00402b80
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0xc8]
cmp dword [ebp - 0xb4], 0x10
cmovae esi, dword [ebp - 0xc8]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414066
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x414f03
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 - 0x60]
call fcn.0048aa20
mov byte [ebp - 4], 0xb
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov esi, dword [ebp - 0x4c]
mov eax, esi
cmovae ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp - 0x50]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x4140e3
lea eax, [edi + edx]
cmp esi, 0x10
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
lea esi, [eax + edx]
push esi
call fcn.004fcb50
add esp, 0xc
mov byte [esi + edi], 0
lea eax, [ebp - 0x60]
jmp 0x4140f3
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x60]
push dword [ebp - 0x18]
push edi
call fcn.00488e80
mov dword [ebp - 0x98], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0xa8], xmm0
mov dword [ebp - 0x94], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xa8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x98], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x414171
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414167
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f08
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0xb4]
cmp ecx, 0x10
jb 0x4141c1
mov edx, dword [ebp - 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4141b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f08
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x94], 0x10
lea esi, [ebp - 0xa8]
push 0x55d1d0
cmovae esi, dword [ebp - 0xa8]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x414f0d
test esi, esi
je 0x414233
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4141f3
sub ecx, edx
je 0x414233
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414224
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414224
cmp eax, 0x20
je 0x414224
cmp eax, 0x45
je 0x414224
cmp eax, 0x24
jne 0x414233
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x414265
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0xa8]
cmp dword [ebp - 0x94], 0x10
cmovae eax, dword [ebp - 0xa8]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x4145eb
movaps xmm0, xmmword [0x5478d0]
xor ecx, ecx
mov dword [ebp - 0x2d], 0xe6e8ffdb
mov byte [ebp - 0x29], 0xe7
movups xmmword [ebp - 0x28], xmm0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xb
jb 0x414280
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2d]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x34], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4142b3
sub ecx, edx
lea eax, [ebp - 0x2d]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00402b80
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
cmovae esi, dword [ebp - 0x48]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4142e0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x98]
sub eax, edx
cmp eax, ecx
jb 0x414f13
cmp dword [ebp - 0x94], 0x10
lea eax, [ebp - 0xa8]
push ecx
cmovae eax, dword [ebp - 0xa8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xe0]
call fcn.0048aa20
mov byte [ebp - 4], 0x10
lea edi, [ebp - 0xe0]
cmp dword [ebp - 0xcc], 0x10
movaps xmm0, xmmword [0x5478d0]
cmovae edi, dword [ebp - 0xe0]
xor ecx, ecx
mov dword [ebp - 0x2d], 0xe6e8ffdb
mov byte [ebp - 0x29], 0xe7
movups xmmword [ebp - 0x28], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xb
jb 0x414355
mov dword [0x55d530], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2d]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x110], xmm0
mov dword [ebp - 0x100], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xfc], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414391
sub ecx, edx
lea eax, [ebp - 0x2d]
push ecx
push eax
lea ecx, [ebp - 0x110]
call fcn.00402b80
mov byte [ebp - 4], 0x11
lea esi, [ebp - 0x110]
cmp dword [ebp - 0xfc], 0x10
cmovae esi, dword [ebp - 0x110]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4143c7
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x80]
sub eax, edx
cmp eax, ecx
jb 0x414f18
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push ecx
cmovae eax, dword [ebp - 0x90]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0xc8]
call fcn.0048aa20
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push 0
cmovae eax, dword [ebp - 0xc8]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov ecx, dword [ebp - 0xb4]
mov esi, eax
cmp ecx, 0x10
jb 0x414460
mov edx, dword [ebp - 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414456
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f1d
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0xfc]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0xf
mov byte [ebp - 0xc8], 0
cmp ecx, 0x10
jb 0x4144b9
mov edx, dword [ebp - 0x110]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4144af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f1d
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0xcc]
cmp ecx, 0x10
jb 0x4144f7
mov edx, dword [ebp - 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4144ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f1d
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0xf
mov byte [ebp - 0xe0], 0
cmp ecx, 0x10
jb 0x41454a
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414540
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f1d
push ecx
push edx
call fcn.004fb0f1
add esp, 8
test esi, esi
je 0x41455c
mov eax, dword [ebp - 0xac]
mov byte [eax], 1
jmp 0x4145eb
cmp dword [ebp - 0x94], 0x10
lea edx, [ebp - 0xa8]
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
cmovae edx, dword [ebp - 0xa8]
mov ecx, edx
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x48], xmm0
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414590
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x48]
call fcn.00402b80
push ecx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x12
call fcn.0040dc90
mov byte [ebp - 4], 0xe
add esp, 4
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x4145eb
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4145e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f22
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x94]
cmp ecx, 0x10
jb 0x414629
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41461f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f27
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x548430]
xor ecx, ecx
mov word [ebp - 0x2a], 0xffdb
movups xmmword [ebp - 0x28], xmm0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x414640
mov dword [0x55d624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2a]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0xe0], xmm0
mov dword [ebp - 0xd0], 0
lea edx, [ecx + 1]
mov dword [ebp - 0xcc], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414680
sub ecx, edx
lea eax, [ebp - 0x2a]
push ecx
push eax
lea ecx, [ebp - 0xe0]
call fcn.00402b80
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0xe0]
cmp dword [ebp - 0xcc], 0x10
cmovae esi, dword [ebp - 0xe0]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4146b6
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebp - 0x80]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x414f2c
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push ecx
cmovae eax, dword [ebp - 0x90]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x48]
call fcn.0048aa20
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
push 0x55d1d0
cmovae esi, dword [ebp - 0x48]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x414f31
test esi, esi
je 0x414762
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414721
sub ecx, edx
je 0x414762
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414752
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414752
cmp eax, 0x20
je 0x414752
cmp eax, 0x45
je 0x414752
cmp eax, 0x24
jne 0x414762
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 1
jmp 0x414770
push 0x55d1d0
call fcn.004fa403
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x13
add esp, 4
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x4147ab
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4147a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f37
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0xf
mov byte [ebp - 0x48], 0
cmp ecx, 0x10
jb 0x4147fb
mov edx, dword [ebp - 0xe0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4147f1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f37
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x414e1a
xorps xmm0, xmm0
mov byte [ebp - 0x23], 0xdb
movq qword [ebp - 0x22], xmm0
xor ecx, ecx
mov word [ebp - 0x1a], 0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 1
jb 0x414820
mov dword [0x55d620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x23]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x34], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414853
sub ecx, edx
lea eax, [ebp - 0x23]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00402b80
mov byte [ebp - 4], 0x15
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
cmovae esi, dword [ebp - 0x48]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414880
sub ecx, edx
mov eax, edi
mov edx, dword [ebx + 0x30]
sub eax, edx
cmp eax, ecx
jb 0x414f3c
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 - 0x60]
call fcn.0048aa20
mov byte [ebp - 4], 0x16
lea ecx, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
mov esi, dword [ebp - 0x4c]
mov eax, esi
cmovae ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp - 0x50]
sub eax, edx
push edi
push ecx
cmp edi, eax
ja 0x4148fa
lea eax, [edx + edi]
cmp esi, 0x10
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x60]
cmovae eax, dword [ebp - 0x60]
lea esi, [eax + edx]
push esi
call fcn.004fcb50
add esp, 0xc
mov byte [esi + edi], 0
lea eax, [ebp - 0x60]
jmp 0x41490a
mov byte [ebp - 0x18], 0
lea ecx, [ebp - 0x60]
push dword [ebp - 0x18]
push edi
call fcn.00488e80
mov dword [ebp - 0x68], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x64], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x78], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x68], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x414979
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x41496f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f41
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x34]
cmp ecx, 0x10
jb 0x4149c3
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4149b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f41
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x64], 0x10
lea esi, [ebp - 0x78]
push 0x55d1d0
cmovae esi, dword [ebp - 0x78]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x414f46
test esi, esi
je 0x414a32
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4149f0
sub ecx, edx
je 0x414a32
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
call edi
cmp eax, 0xffffffff
jne 0x414a23
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414a23
cmp eax, 0x20
je 0x414a23
cmp eax, 0x45
je 0x414a23
cmp eax, 0x24
jne 0x414a38
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x414a61
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
cmovae eax, dword [ebp - 0x78]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x414dd7
movaps xmm0, xmmword [0x548430]
xor ecx, ecx
mov word [ebp - 0x2a], 0xffdb
movups xmmword [ebp - 0x28], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x414a74
mov dword [0x55d624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2a]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x34], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414aa7
sub ecx, edx
lea eax, [ebp - 0x2a]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00402b80
mov byte [ebp - 4], 0x1a
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
cmovae esi, dword [ebp - 0x48]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414ad1
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x68]
sub eax, edx
cmp eax, ecx
jb 0x414f4c
cmp dword [ebp - 0x64], 0x10
lea eax, [ebp - 0x78]
push ecx
cmovae eax, dword [ebp - 0x78]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x18]
lea ecx, [ebp - 0x128]
call fcn.0048aa20
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x414b3e
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414b34
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f61
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movups xmm0, xmmword [ebp - 0x128]
movups xmmword [ebp - 0x78], xmm0
movq xmm0, qword [ebp - 0x118]
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x34]
movq qword [ebp - 0x68], xmm0
cmp ecx, 0x10
jb 0x414b8e
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414b84
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f61
push ecx
push edx
call fcn.004fb0f1
add esp, 8
cmp dword [ebp - 0x64], 0x10
lea esi, [ebp - 0x78]
push 0x55d1d0
cmovae esi, dword [ebp - 0x78]
call fcn.004fa3f2
add esp, 4
test eax, eax
jne 0x414f51
test esi, esi
je 0x414bf3
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414bb7
sub ecx, edx
je 0x414bf3
push esi
call edi
cmp eax, 0xffffffff
jne 0x414be4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414be4
cmp eax, 0x20
je 0x414be4
cmp eax, 0x45
je 0x414be4
cmp eax, 0x24
jne 0x414bf3
push 0x55d1d0
call fcn.004fa403
add esp, 4
jmp 0x414c1c
push 0x55d1d0
call fcn.004fa403
add esp, 4
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
cmovae eax, dword [ebp - 0x78]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x414dd7
movaps xmm0, xmmword [0x548430]
lea eax, [ebp - 0x78]
sub esp, 0x18
mov word [ebp - 0x2a], 0xffdb
mov ecx, esp
mov dword [ebp - 0x18], esp
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x11], 0
push eax
call fcn.00483010
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x414c48
mov dword [0x55d624], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2a]
mov byte [ebp - 0x22], 0
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x34], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414c80
sub ecx, edx
lea eax, [ebp - 0x2a]
push ecx
push eax
lea ecx, [ebp - 0x48]
call fcn.00402b80
mov byte [ebp - 4], 0x1c
lea esi, [ebp - 0x48]
cmp dword [ebp - 0x34], 0x10
cmovae esi, dword [ebp - 0x48]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0xb0], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414cb5
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x80]
sub eax, edx
cmp eax, ecx
jb 0x414f57
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push ecx
cmovae eax, dword [ebp - 0x90]
push esi
push edx
push eax
push ecx
push dword [ebp - 0xb0]
mov ecx, edi
call fcn.0048aa20
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x1d
call fcn.00412090
add esp, 0x30
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x34]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x414d45
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414d38
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f61
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x414d57
mov eax, dword [ebp - 0xac]
mov byte [eax], 1
jmp 0x414dd7
cmp dword [ebp - 0x64], 0x10
lea edx, [ebp - 0x78]
xorps xmm0, xmm0
mov dword [ebp - 0x38], 0
cmovae edx, dword [ebp - 0x78]
mov ecx, edx
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x48], xmm0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414d80
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x48]
call fcn.00402b80
push ecx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x1e
call fcn.0040dc90
mov ecx, dword [ebp - 0x34]
add esp, 4
cmp ecx, 0x10
jb 0x414dd7
mov edx, dword [ebp - 0x48]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414dcd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f5c
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x414e1a
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414e01
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f61
push ecx
push edx
call fcn.004fb0f1
add esp, 8
jmp 0x414e1a
push 0x55d1d0
call fcn.004fa403
add esp, 4
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x414e51
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414e47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f66
push ecx
push edx
call fcn.004fb0f1
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
cmp ecx, 0x10
jb 0x414e9a
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414e90
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f66
push ecx
push edx
call fcn.004fb0f1
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 0x414ee0
mov edx, dword [ebx + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414ed6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414f66
push ecx
push edx
call fcn.004fb0f1
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.00500390
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.004023f0
call fcn.00500390
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.004023f0
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.00500390
call fcn.004023f0
call fcn.00500390
push eax
call fcn.004fa09b
call fcn.004023f0
push eax
call fcn.004fa09b
call fcn.004023f0
call fcn.00500390
call fcn.00500390
call fcn.00500390
int3