Function at 0x844ad10
Capabilities:
Check if file exists
Contain obfuscated stackstrings
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x84f85a1
mov eax, dword fs:[0]
push eax
sub esp, 0x1d8
mov eax, dword [0x184002c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x1cc], ebx
mov dword [ebp - 0x14], 0
call fcn.0840e590
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x844ad6a
push 0x80004005
call fcn.0840d910
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
sub esp, 0xc
mov dword [ebp - 0x1c8], 0
mov ecx, esp
mov dword [ebp - 0xdc], 0x51494742
lea eax, [ebp - 0x24]
mov dword [ebp - 0xd8], 0x37307847
mov dword [ebp - 0xd4], 0x34514441
push dword [ebp - 0x24]
mov dword [ebp - 0xd0], 0x466b6e42
push eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xcc], 0x44347750
mov dword [ebp - 0xc8], 0x3773784a
mov dword [ebp - 0xc4], 0x61636745
mov dword [ebp - 0xc0], 0x62516a4d
mov dword [ebp - 0xbc], 0x386b5450
mov dword [ebp - 0xb8], 0x366b6a4b
mov dword [ebp - 0xb4], 0x4859774f
mov dword [ebp - 0xb0], 0x78565248
mov dword [ebp - 0xac], 0x526f5765
mov dword [ebp - 0xa8], 0x636f6e4f
mov dword [ebp - 0xa4], 0x5973334f
mov dword [ebp - 0xa0], 0x3456434f
mov dword [ebp - 0x9c], 0x2b304148
mov dword [ebp - 0x98], 0x32384164
mov dword [ebp - 0x94], 0x76457a47
mov dword [ebp - 0x90], 0x344a414a
mov dword [ebp - 0x8c], 0x4e416950
mov dword [ebp - 0x88], 0x414d6949
mov dword [ebp - 0x84], 0x4541544c
mov dword [ebp - 0x80], 0x5934334c
mov dword [ebp - 0x7c], 0x77594359
mov dword [ebp - 0x78], 0x48517a44
mov dword [ebp - 0x74], 0x50734442
mov dword [ebp - 0x70], 0x6f635441
mov dword [ebp - 0x6c], 0x5151574e
mov dword [ebp - 0x68], 0x39427942
mov dword [ebp - 0x64], 0x43346a41
mov dword [ebp - 0x60], 0x7631674a
mov dword [ebp - 0x5c], 0x76384443
mov dword [ebp - 0x58], 0x4659524a
mov dword [ebp - 0x54], 0x39306842
mov dword [ebp - 0x50], 0x7655424f
mov dword [ebp - 0x4c], 0x6b415359
mov dword [ebp - 0x48], 0x2b777964
mov dword [ebp - 0x44], 0x4f593250
mov dword [ebp - 0x40], 0x6f734461
mov dword [ebp - 0x3c], 0x6b346a47
mov dword [ebp - 0x38], 0x74416e59
mov dword [ebp - 0x34], 0x6868794f
mov dword [ebp - 0x30], 0x35515341
mov dword [ebp - 0x2c], 0x416f584f
mov dword [ebp - 0x28], 0x46434141
push eax
push 0
mov dword [ebp - 4], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
call fcn.08405280
lea eax, [ebp - 0x1d8]
push eax
call fcn.0844ba20
add esp, 0x10
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
mov byte [ebp - 4], 1
sar eax, 1
jne 0x844af65
push str.invalid_vector_T__subscript
call fcn.0847ecf2
push ecx
lea ecx, [ebp - 0x1c8]
call fcn.08408480
mov eax, dword [ebp - 0x1d8]
mov byte [ebp - 4], 3
test eax, eax
je 0x844afa6
push eax
call fcn.0849b460
add esp, 4
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0
call fcn.0840e590
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x844afc2
push 0x80004005
call fcn.0840d910
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x14]
mov dword [ebp - 0x1c4], 0x586b4442
push eax
sub esp, 0xc
mov dword [ebp - 0x1c0], 0x564d5266
mov ecx, esp
mov dword [ebp - 0x1bc], 0x5a384247
lea eax, [ebp - 0xdc]
mov dword [ebp - 0x1b8], 0x56416842
mov dword [ebp - 0x1b4], 0x7a344849
push dword [ebp - 0x24]
mov dword [ebp - 0x1b0], 0x775a7944
push eax
lea eax, [ebp - 0x1c4]
mov dword [ebp - 0x1ac], 0x746b7848
mov dword [ebp - 0x1a8], 0x45306e43
mov dword [ebp - 0x1a4], 0x5738674d
mov dword [ebp - 0x1a0], 0x5959524d
mov dword [ebp - 0x19c], 0x75415244
mov dword [ebp - 0x198], 0x41514848
mov dword [ebp - 0x194], 0x52307a48
mov dword [ebp - 0x190], 0x3749695a
mov dword [ebp - 0x18c], 0x4b51434f
mov dword [ebp - 0x188], 0x664d5364
mov dword [ebp - 0x184], 0x6e34334f
mov dword [ebp - 0x180], 0x6742434f
mov dword [ebp - 0x17c], 0x6234444f
mov dword [ebp - 0x178], 0x564d4450
mov dword [ebp - 0x174], 0x39426943
mov dword [ebp - 0x170], 0x7652775a
mov dword [ebp - 0x16c], 0x61776866
mov dword [ebp - 0x168], 0x374d5150
mov dword [ebp - 0x164], 0x6c746e4e
mov dword [ebp - 0x160], 0x6651444c
mov dword [ebp - 0x15c], 0x6a677a4b
mov dword [ebp - 0x158], 0x6b513349
mov dword [ebp - 0x154], 0x315a6947
mov dword [ebp - 0x150], 0x4a34414f
mov dword [ebp - 0x14c], 0x74594262
mov dword [ebp - 0x148], 0x62416e41
mov dword [ebp - 0x144], 0x6a456941
mov dword [ebp - 0x140], 0x514d7847
mov dword [ebp - 0x13c], 0x746c6945
mov dword [ebp - 0x138], 0x2b55424c
mov dword [ebp - 0x134], 0x72415143
mov dword [ebp - 0x130], 0x64594445
mov dword [ebp - 0x12c], 0x74517841
mov dword [ebp - 0x128], 0x3630514e
mov dword [ebp - 0x124], 0x78787944
mov dword [ebp - 0x120], 0x53497a5a
mov dword [ebp - 0x11c], 0x6130524f
mov dword [ebp - 0x118], 0x4b417749
mov dword [ebp - 0x114], 0x57494445
mov dword [ebp - 0x110], 0x456b5747
mov dword [ebp - 0x10c], 0x5545794b
mov dword [ebp - 0x108], 0x6b314464
mov dword [ebp - 0x104], 0x72674150
mov dword [ebp - 0x100], 0x4c594149
mov dword [ebp - 0xfc], 0x6d55534e
mov dword [ebp - 0xf8], 0x5041774a
mov dword [ebp - 0xf4], 0x6641324d
mov dword [ebp - 0xf0], 0x786b6e4d
mov dword [ebp - 0xec], 0x68345142
mov dword [ebp - 0xe8], 0x65557943
mov dword [ebp - 0xe4], 0x41596e61
mov dword [ebp - 0xe0], 0x70434141
push eax
push 0
mov byte [ebp - 4], 4
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
call fcn.08405280
lea eax, [ebp - 0x1e4]
push eax
call fcn.0844ba20
add esp, 0x10
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ecx
mov byte [ebp - 4], 5
sar eax, 1
jne 0x844b274
push str.invalid_vector_T__subscript
call fcn.0847ecf2
push ecx
lea eax, [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.084713f0
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 6
call fcn.08445800
mov edx, dword [ebp - 0x18]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov byte [ebp - 4], 5
mov eax, ebx
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x844b2b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x1e4]
mov byte [ebp - 4], 4
test eax, eax
je 0x844b2c7
push eax
call fcn.0849b460
add esp, 4
mov edi, dword [ebp - 0x1c]
mov ecx, dword [edi - 0xc]
test ecx, ecx
je 0x844b448
cmp dword [esi - 0xc], 0
jne 0x844b335
lea edx, [edi - 0x10]
lea ebx, [esi - 0x10]
cmp edx, ebx
je 0x844b3a8
cmp dword [ebx + 0xc], 0
lea esi, [ebx + 0xc]
jl 0x844b326
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x844b326
push edx
call fcn.0844a650
add esp, 4
mov dword [ebp - 0x18], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x844b31b
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
lea esi, [eax + 0x10]
mov dword [ebp - 0x20], esi
jmp 0x844b3a8
push ecx
push edi
lea ecx, [ebp - 0x20]
call fcn.0840eca0
mov esi, dword [ebp - 0x20]
jmp 0x844b3a8
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x844b359
push 0x104
lea ecx, [ebp - 0x20]
call fcn.0840e870
mov esi, dword [ebp - 0x20]
push edi
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push dword [esi - 8]
push esi
call fcn.0849f12f
add esp, 8
test eax, eax
js 0x844b4e4
cmp eax, dword [esi - 8]
jg 0x844b4e4
xor ecx, ecx
mov dword [esi - 0xc], eax
push esi
mov word [esi + eax*2], cx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x844b397
test al, 0x10
jne 0x844b3a8
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x844b4cc
mov ecx, dword [ebp - 0x1cc]
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x1c8]
lea eax, [ebp - 0x24]
push eax
call fcn.084713f0
mov ecx, dword [eax]
lea ebx, [edi - 0x10]
mov byte [ebp - 4], 7
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x844b41a
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x844b40b
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x844b40b
push edx
call fcn.0844a650
add esp, 4
mov dword [ebp - 0x18], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x844b403
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
lea edi, [eax + 0x10]
mov dword [ebp - 0x1c], edi
jmp 0x844b41a
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0840eca0
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov byte [ebp - 4], 4
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x844b43d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [edi - 0xc]
test ecx, ecx
jne 0x844b2d5
mov dword [ebp - 0x14], 0
add esi, 0xfffffff0
mov byte [ebp - 4], 3
mov ecx, ebx
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x844b46c
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c8]
mov ecx, ebx
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x844b48f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x844b4ad
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0849cd1e
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0xb7
cmovne edx, eax
mov dword [ebp - 0x14], edx
jmp 0x844b44f
push 0x80070057
call fcn.0840d910
int3