Function at 0x412690
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x581a30
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x6069b0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push ecx
mov edx, str.full.data
lea ecx, [ebp - 0x20]
call fcn.0041f820
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
add esp, 4
push dword [ebp - 0x20]
call edi
mov edx, dword [ebp - 0x20]
mov esi, eax
neg esi
sbb esi, esi
add edx, 0xfffffff0
inc esi
or ecx, 0xffffffff
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4126f9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
jne 0x412704
xor eax, eax
jmp 0x412ab6
mov ebx, dword [ebp + 8]
push dword [ebx]
call edi
test eax, eax
je 0x4126fd
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x4c]
mov dword [ebp - 4], 0
push eax
push ebx
call fcn.004133a0
test eax, eax
jne 0x412740
xor esi, esi
jmp 0x412aac
call fcn.00402a00
mov ecx, eax
test ecx, ecx
jne 0x412755
push 0x80004005
call fcn.00402a80
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 1
call fcn.00402a00
mov ecx, eax
test ecx, ecx
jne 0x412779
push 0x80004005
call fcn.00402a80
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x3c], eax
push str..zip
mov edx, ebx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x30]
call fcn.0040b2b0
push ecx
mov byte [ebp - 4], 3
push dword [ebp - 0x30]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov edx, eax
lea ecx, [ebp - 0x24]
call fcn.00436620
add esp, 8
push eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
call fcn.00405c70
mov byte [ebp - 4], 3
or esi, 0xffffffff
mov edx, dword [ebp - 0x24]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4127e0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00412c30
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x34]
test eax, eax
je 0x412a50
cmp dword [ebx - 0xc], 0
je 0x412a50
cmp dword [edi - 0xc], 0
je 0x412a50
lea ecx, [ebp - 0x20]
call fcn.00407e40
mov eax, 0x40
mov byte [ebp - 4], 5
call fcn.00552fe0
mov ecx, esp
mov edx, str.XunduBoundary0xKhTSLbOuNdCrY
push 3
push 0x3a
call fcn.00413960
push eax
lea eax, [ebp - 0x20]
push str._r_n___s___r_n
push eax
call fcn.00413880
mov eax, edi
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x412850
sub eax, edx
sar eax, 1
lea esi, [eax + 1]
cmp esi, 0x3fffffff
jle 0x41286e
xor eax, eax
jmp 0x412883
add esi, esi
mov eax, esi
call fcn.005531b0
mov ecx, esp
mov edx, edi
push 3
push esi
call fcn.00413960
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040b200
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x48]
sub edx, dword [ebp - 0x4c]
mov ecx, dword [eax - 0xc]
mov eax, dword [esi - 0xc]
add eax, edx
mov dword [ebp - 0x1c], edx
add eax, ecx
push eax
mov dword [ebp - 0x28], eax
call fcn.005525d1
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov dword [ebp - 0x18], eax
push dword [ecx - 0xc]
push ecx
push eax
call fcn.005557b0
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ebp - 0x18]
push dword [ebp - 0x1c]
mov ecx, dword [ecx - 0xc]
add eax, ecx
push dword [ebp - 0x4c]
mov dword [ebp - 0x24], ecx
push eax
call fcn.005557b0
mov eax, dword [ebp - 0x24]
add esp, 0xc
add eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x18]
push dword [esi - 0xc]
push esi
push eax
call fcn.005557b0
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.00407e40
push 0x5e49d4
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
call fcn.00407780
lea ecx, [ebp - 0x38]
call fcn.00407e40
mov esi, eax
lea ecx, [ebp - 0x64]
call fcn.00407e40
push esi
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xa
push eax
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x54]
call fcn.00402aa0
add esp, 0xc
lea ecx, [ebp - 0x64]
call fcn.00405930
lea ecx, [ebp - 0x38]
call fcn.00405930
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xe
call fcn.00405930
push str.XunduBoundary0xKhTSLbOuNdCrY
push str.multipart_form_data__boundary_s
lea eax, [ebp - 0x1c]
push eax
call fcn.00406400
add esp, 0xc
lea ecx, [ebp - 0x24]
push str.Content_Type
call fcn.00407780
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x1c]
mov ecx, dword [ebp - 0x54]
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ecx + 0x28]
call fcn.0041db60
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xe
call fcn.00405930
push dword [ebp - 0x28]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x54]
push esi
call fcn.0041ec70
push esi
call fcn.005525cc
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
push ecx
push 0
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
push 0
push 0
call fcn.00442240
mov esi, dword [ebp - 0x60]
add esp, 0x14
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x5c]
sub eax, esi
mov dword [ebp - 0x28], eax
call fcn.00402a00
push eax
push dword [ebp - 0x28]
lea ecx, [ebp - 0x28]
push esi
call fcn.00405c00
cmp dword [ebp - 0x38], 0
je 0x412a14
mov eax, dword [ebp + 8]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], 1
call fcn.00405930
lea ecx, [ebp - 0x60]
call fcn.00405b90
lea ecx, [ebp - 0x54]
call fcn.004057e0
lea ecx, [ebp - 0x1c]
call fcn.00405930
lea ecx, [ebp - 0x2c]
call fcn.00405930
lea ecx, [ebp - 0x20]
call fcn.00405930
or esi, 0xffffffff
jmp 0x412a57
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 2
mov eax, esi
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412a75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x412a90
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add ebx, 0xfffffff0
lock xadd dword [ebx + 0xc], esi
dec esi
test esi, esi
jg 0x412aa9
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov esi, dword [ebp - 0x18]
lea ecx, [ebp - 0x4c]
call fcn.00405b90
mov eax, esi
lea esp, [ebp - 0x74]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00551ee1
mov esp, ebp
pop ebp
ret 4