Function at 0x4050e0
Capabilities:
Move file

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 0x55f262
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1e8
mov eax, dword [0x5c84bc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1f4], esi
call fcn.004144b0
mov dword [esi + 0x84], eax
test eax, eax
jne 0x405151
push 0x11
push str.cant_create_curl
lea ecx, [esi + 0x58]
call fcn.00401530
mov eax, 1
jmp 0x405c93
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1ec], esp
push 1
push 0x5bc138
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
call fcn.004013e0
sub esp, 0x18
mov dword [ebp - 4], 0
mov ecx, esp
push 1
push 0x5bbce8
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
call fcn.004013e0
lea edi, [esi + 0x24]
mov dword [ebp - 4], 0xffffffff
mov edx, edi
lea ecx, [ebp - 0x168]
call fcn.00406a20
mov edx, dword [ebp - 0x154]
add esp, 0x30
cmp edx, 8
jb 0x405202
mov ecx, dword [ebp - 0x168]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4051f8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cb3
push edx
push ecx
call fcn.00532001
add esp, 8
cmp dword [edi + 0x14], 8
mov edx, edi
jb 0x40520c
mov edx, dword [edi]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x405239
dec eax
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x2f
lea eax, [edx + ecx*2]
je 0x405233
cmp eax, edx
je 0x405239
sub eax, 2
cmp word [eax], 0x2f
jne 0x405226
sub eax, edx
sar eax, 1
jmp 0x40523c
or eax, 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x198], 0
cmp dword [edi + 0x10], eax
mov word [ebp - 0x198], cx
mov ecx, edi
cmovb eax, dword [edi + 0x10]
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 7
jb 0x405274
mov ecx, dword [edi]
push eax
push ecx
lea ecx, [ebp - 0x198]
call fcn.004013e0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x198]
cmp dword [ebp - 0x184], 8
cmovae eax, dword [ebp - 0x198]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov ecx, dword [edi + 0x10]
mov eax, accept
sub eax, ecx
cmp eax, 4
jb 0x405cb8
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x4052c2
mov eax, dword [edi]
push 4
push str..old
push ecx
push eax
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0x138]
call fcn.00404970
cmp dword [ebp - 0x124], 8
lea eax, [ebp - 0x138]
push 0x5bc1e4
cmovae eax, dword [ebp - 0x138]
push eax
call fcn.0053c3bc
mov edx, dword [ebp - 0x124]
add esp, 8
mov dword [esi + 0x88], eax
cmp edx, 8
jb 0x405345
mov ecx, dword [ebp - 0x138]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40533b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cbd
push edx
push ecx
call fcn.00532001
add esp, 8
cmp dword [esi + 0x88], 0
jne 0x405367
push 0xf
push str.cant_open_file
lea ecx, [esi + 0x58]
call fcn.00401530
mov esi, 1
jmp 0x4056a2
push 0
mov dword [ebp - 0x150], 0
lea ecx, [ebp - 0x150]
push 0x5bbcb8
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
call fcn.00401530
mov byte [ebp - 4], 2
lea edx, [esi + 0xc]
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x1ec], ecx
cmp ecx, 8
jb 0x4053b6
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x1f0], eax
test eax, eax
je 0x4053e9
dec eax
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x2f
lea eax, [edx + ecx*2]
je 0x4053e3
cmp eax, edx
je 0x4053e9
sub eax, 2
cmp word [eax], 0x2f
jne 0x4053d6
sub eax, edx
sar eax, 1
jmp 0x4053ec
or eax, 0xffffffff
xor edx, edx
mov dword [ebp - 0x138], 0
inc eax
mov word [ebp - 0x138], dx
cmp dword [ebp - 0x1f0], eax
lea edx, [esi + 0xc]
mov dword [ebp - 0x128], 0
cmovb eax, dword [ebp - 0x1f0]
cmp dword [ebp - 0x1ec], 8
mov dword [ebp - 0x124], 7
jb 0x405430
mov edx, dword [esi + 0xc]
push eax
push edx
lea ecx, [ebp - 0x138]
call fcn.004013e0
lea edx, [esi + 0xc]
mov byte [ebp - 4], 3
cmp dword [edx + 0x14], 8
mov dword [ebp - 0x1f0], edx
jb 0x405458
mov eax, dword [edx]
mov dword [ebp - 0x1f0], eax
mov eax, dword [edx + 0x10]
test eax, eax
je 0x405493
dec eax
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [ebp - 0x1f0]
cmp word [eax + ecx*2], 0x2f
lea eax, [eax + ecx*2]
mov ecx, dword [ebp - 0x1f0]
je 0x40548d
nop
cmp eax, ecx
je 0x405493
sub eax, 2
cmp word [eax], 0x2f
jne 0x405480
sub eax, ecx
sar eax, 1
jmp 0x405496
or eax, 0xffffffff
lea ecx, [eax + 1]
mov dword [ebp - 0x168], 0
xor eax, eax
mov dword [ebp - 0x158], 0
mov word [ebp - 0x168], ax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x154], 7
cmp eax, ecx
jb 0x405cc2
sub eax, ecx
mov esi, 0xffffffff
cmp eax, 0xffffffff
cmovb esi, eax
cmp dword [edx + 0x14], 8
mov dword [ebp - 0x1ec], esi
mov esi, dword [ebp - 0x1f4]
jb 0x4054ec
mov edx, dword [edx]
push dword [ebp - 0x1ec]
lea eax, [edx + ecx*2]
push eax
lea ecx, [ebp - 0x168]
call fcn.004013e0
sub esp, 0x18
mov byte [ebp - 4], 4
lea eax, [ebp - 0x138]
mov ecx, esp
push eax
call fcn.00403210
lea ecx, [ebp - 0x150]
call fcn.004070e0
add esp, 0x18
test eax, eax
js 0x4055c8
push 0
mov dword [ebp - 0x180], 0
lea ecx, [ebp - 0x180]
push 0x5bbcb8
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov byte [ebp - 0x180], 0
call fcn.00401530
sub esp, 0x18
mov byte [ebp - 4], 5
lea eax, [ebp - 0x168]
mov ecx, esp
push eax
call fcn.00403210
lea ecx, [ebp - 0x180]
call fcn.004070e0
add esp, 0x18
test eax, eax
jns 0x4056e5
mov edx, dword [ebp - 0x16c]
cmp edx, 0x10
jb 0x4055c8
mov ecx, dword [ebp - 0x180]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4055be
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov edx, dword [ebp - 0x154]
cmp edx, 8
jb 0x405608
mov ecx, dword [ebp - 0x168]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4055fe
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov edx, dword [ebp - 0x124]
cmp edx, 8
jb 0x405648
mov ecx, dword [ebp - 0x138]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40563e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov esi, 1
mov edx, dword [ebp - 0x13c]
cmp edx, 0x10
jb 0x405687
mov ecx, dword [ebp - 0x150]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40567d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0xf
mov byte [ebp - 0x150], 0
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x405c91
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405c87
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
jmp 0x405c87
lea edx, [ebp - 0x180]
lea ecx, [ebp - 0x1b0]
call fcn.004071d0
mov byte [ebp - 4], 6
mov edx, eax
cmp dword [eax + 0x14], 0x10
jb 0x405704
mov edx, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x13c]
sub eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1ec], ecx
push ecx
push edx
cmp ecx, eax
ja 0x40576b
mov esi, dword [ebp - 0x1f0]
cmp dword [ebp - 0x13c], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x150]
cmovae eax, dword [ebp - 0x150]
add esi, eax
push esi
call fcn.00534810
mov eax, dword [ebp - 0x1ec]
add esp, 0xc
mov byte [eax + esi], 0
mov esi, dword [ebp - 0x1f4]
jmp 0x405784
mov byte [ebp - 0x1ec], 0
push dword [ebp - 0x1ec]
push ecx
lea ecx, [ebp - 0x150]
call fcn.00405e10
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x19c]
cmp edx, 0x10
jb 0x4057c2
mov ecx, dword [ebp - 0x1b0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4057b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405ccc
push edx
push ecx
call fcn.00532001
add esp, 8
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x16c]
cmp edx, 0x10
jb 0x405800
mov ecx, dword [ebp - 0x180]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4057f6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x154]
cmp edx, 8
jb 0x405844
mov ecx, dword [ebp - 0x168]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40583a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x124]
cmp edx, 8
jb 0x405888
mov ecx, dword [ebp - 0x138]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40587e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cc7
push edx
push ecx
call fcn.00532001
add esp, 8
cmp dword [ebp - 0x13c], 0x10
lea eax, [ebp - 0x150]
cmovae eax, dword [ebp - 0x150]
push eax
push 0x2712
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 0x404f60
push 0x4e2b
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push esi
push 0x2711
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 1
push 0x29
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 0x404ec0
push 0x4e6f
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push esi
push 0x272d
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 3
push 0x54
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 0
push 0x2b
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 0x405000
push 0x4e58
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push esi
push 0x2749
push dword [esi + 0x84]
call fcn.00417580
add esp, 0xc
push 1
push 0x34
push dword [esi + 0x84]
call fcn.00417580
mov ecx, dword [edi + 0x10]
mov eax, accept
sub eax, ecx
add esp, 0xc
cmp eax, 4
jb 0x405cd1
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x405999
mov eax, dword [edi]
push 4
push str..old
push ecx
push eax
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0x138]
call fcn.00404970
push 0x38
lea eax, [ebp - 0x1e8]
push 0
push eax
call fcn.005346b0
add esp, 0xc
lea ecx, [ebp - 0x1e8]
cmp dword [ebp - 0x124], 8
lea eax, [ebp - 0x138]
cmovae eax, dword [ebp - 0x138]
push ecx
push eax
call fcn.00538680
mov edx, dword [ebp - 0x124]
add esp, 8
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1cc]
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], ecx
cmp edx, 8
jb 0x405a3d
mov ecx, dword [ebp - 0x138]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405a33
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cd6
push edx
push ecx
call fcn.00532001
add esp, 8
mov ecx, dword [esi + 0x74]
mov eax, dword [esi + 0x70]
test ecx, ecx
jl 0x405a62
jg 0x405a4d
test eax, eax
je 0x405a62
push ecx
push eax
push 0x75a4
push dword [esi + 0x84]
call fcn.00417580
add esp, 0x10
push dword [esi + 0x84]
call fcn.004144f0
add esp, 4
mov dword [ebp - 0x1f4], eax
push dword [esi + 0x88]
call fcn.0053bf3e
add esp, 4
push dword [esi + 0x84]
call fcn.00414470
mov eax, dword [ebp - 0x1f4]
add esp, 4
cmp eax, 0x2a
jne 0x405aa5
lea esi, [eax - 0x28]
jmp 0x40564d
test eax, eax
jne 0x405b5e
cmp byte [esi + 0x90], al
jne 0x405b5e
mov ecx, dword [edi + 0x10]
mov eax, accept
sub eax, ecx
cmp eax, 4
jb 0x405cdb
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x405ad6
mov eax, dword [edi]
push 4
push str..old
push ecx
push eax
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0x138]
call fcn.00404970
cmp dword [edi + 0x14], 8
jb 0x405af9
mov edi, dword [edi]
cmp dword [ebp - 0x124], 8
lea eax, [ebp - 0x138]
push 1
cmovae eax, dword [ebp - 0x138]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edx, dword [ebp - 0x124]
cmp edx, 8
jb 0x405b57
mov ecx, dword [ebp - 0x138]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x405b4d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405ce0
push edx
push ecx
call fcn.00532001
add esp, 8
xor esi, esi
jmp 0x40564d
push 0x104
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.005346b0
mov eax, dword [ebp - 0x1f4]
add esp, 0xc
push eax
push dword [esi + 0x8c]
lea eax, [ebp - 0x120]
push str.httpcode:_d__CURLcode:_d_
push 0x103
push eax
call fcn.00404bd0
lea ecx, [ebp - 0x120]
add esp, 0x14
add esi, 0x58
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405ba6
sub ecx, edx
mov eax, accept
mov edx, dword [esi + 0x10]
sub eax, edx
cmp eax, ecx
jb 0x405ce5
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x405bcb
mov eax, dword [esi]
push edx
push eax
push ecx
lea eax, [ebp - 0x120]
push eax
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0x138]
call fcn.00405f70
lea eax, [ebp - 0x138]
cmp esi, eax
je 0x405c4e
mov ecx, dword [esi + 0x14]
cmp ecx, 0x10
jb 0x405c24
mov eax, dword [esi]
inc ecx
cmp ecx, 0x1000
jb 0x405c1a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cea
mov eax, edx
push ecx
push eax
call fcn.00532001
add esp, 8
movups xmm0, xmmword [ebp - 0x138]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x128]
movq qword [esi + 0x10], xmm0
jmp 0x405648
mov edx, dword [ebp - 0x124]
cmp edx, 0x10
jb 0x405648
mov ecx, dword [ebp - 0x138]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40563e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405cea
jmp 0x40563e
push edx
push ecx
call fcn.00532001
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00531ff3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.005375cf
call fcn.00401220
call fcn.005375cf
call fcn.004040f0
call fcn.005375cf
call fcn.005375cf
call fcn.00401220
call fcn.005375cf
call fcn.00401220
call fcn.005375cf
call fcn.00401220
call fcn.005375cf
int3