Function at 0x5169a0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10a4
call fcn.005890a0
mov eax, dword [0x632e20]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov byte [ebp - 0x1008], 0
push 0xfff
push 0
lea eax, [ebp - 0x1007]
push eax
call fcn.00588e10
add esp, 0xc
mov eax, dword [ebp - 8]
add eax, 0x710
push eax
mov ecx, dword [ebp - 8]
call fcn.00514af0
mov ecx, dword [ebp - 8]
call fcn.005194f0
mov byte [ebp - 0x1009], al
movzx eax, byte [ebp - 0x1009]
test eax, eax
jne 0x516a09
jmp 0x517087
push 4
mov ecx, dword [ebp - 8]
call fcn.005171e0
mov dword [ebp - 0x1014], 0
mov dword [ebp - 0x1010], 0
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1018], 0
mov dword [ebp - 0x1024], 0
mov dword [ebp - 0x1020], 0
mov dword [ebp - 0x102c], 0
mov dword [ebp - 0x1028], 0
mov dword [ebp - 0x1034], 0
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x103c], 0
mov dword [ebp - 0x1038], 0
mov dword [ebp - 0x1040], 0
mov dword [ebp - 0x1044], 0
mov byte [ebp - 0x1045], 0
mov byte [ebp - 0x1046], 0
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
jne 0x516f53
movzx eax, byte [0x63a970]
test eax, eax
jne 0x516b18
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x1098], eax
mov dword [ebp - 0x109c], ecx
mov edx, dword [ebp - 0x1098]
mov eax, dword [ebp - 0x109c]
mov ecx, dword [edx + 0x1d0]
cmp ecx, dword [eax + 0x1d8]
jne 0x516b18
mov edx, dword [ebp - 0x1098]
mov eax, dword [ebp - 0x109c]
mov ecx, dword [edx + 0x1d4]
cmp ecx, dword [eax + 0x1dc]
jne 0x516b18
mov byte [0x63a970], 1
mov eax, dword [ebp - 0x1010]
push eax
mov ecx, dword [ebp - 0x1014]
push ecx
mov ecx, dword [ebp - 8]
call fcn.005172d0
movzx edx, al
test edx, edx
je 0x516ba3
push 0x1000
push 0
lea eax, [ebp - 0x1008]
push eax
call fcn.00588e10
add esp, 0xc
mov ecx, dword [ebp - 8]
add ecx, 0x7b8
call fcn.004110d0
push eax
mov ecx, dword [ebp - 8]
call fcn.005112d0
push eax
push str.TID_:__5lu____s_is_Download_Complete
lea eax, [ebp - 0x1008]
push eax
call fcn.00588fcd
add esp, 0x10
cmp dword [0x63926c], 0
je 0x516b9e
push 0x17
push 0x17
lea eax, [ebp - 0x1008]
push eax
mov ecx, dword [0x63926c]
mov edx, dword [ecx]
mov eax, dword [0x63926c]
push eax
mov ecx, dword [edx + 8]
call ecx
jmp 0x516f53
mov ecx, dword [ebp - 8]
add ecx, 0x7b8
call fcn.004110d0
push eax
call fcn.00509f40
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x104c], edx
cmp dword [ebp - 0x104c], 0
jl 0x516bf2
jg 0x516bd7
cmp dword [ebp - 0x1050], 0
jbe 0x516bf2
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x1050]
mov dword [eax + 0x1020], ecx
mov edx, dword [ebp - 0x104c]
mov dword [eax + 0x1024], edx
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516c06
jmp 0x516f53
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0x60]
call eax
mov dword [ebp - 0x1014], eax
mov dword [ebp - 0x1010], edx
mov eax, dword [ebp - 0x1014]
sub eax, dword [ebp - 0x103c]
mov ecx, dword [ebp - 0x1010]
sbb ecx, dword [ebp - 0x1038]
push ecx
push eax
call fcn.005144d0
add esp, 8
mov dword [ebp - 0x109c], eax
mov dword [ebp - 0x1098], edx
cmp dword [ebp - 0x1098], 0
jl 0x516c89
jg 0x516c61
cmp dword [ebp - 0x109c], 0xf
jb 0x516c89
mov ecx, dword [ebp - 8]
call fcn.00520800
mov ecx, dword [ebp - 8]
call fcn.005210f0
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x103c], eax
mov ecx, dword [ebp - 0x1010]
mov dword [ebp - 0x1038], ecx
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516c9d
jmp 0x516f53
mov ecx, dword [ebp - 8]
call fcn.00517240
movzx eax, al
test eax, eax
jne 0x516ccb
mov ecx, dword [ebp - 8]
call fcn.005172a0
mov ecx, dword [ebp - 8]
cmp eax, dword [ecx + 0x98]
jle 0x516ccb
mov byte [ebp - 0x1046], 1
jmp 0x516f53
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516cdf
jmp 0x516f53
mov eax, dword [ebp - 0x1010]
push eax
mov ecx, dword [ebp - 0x1014]
push ecx
mov ecx, dword [ebp - 8]
call fcn.005172d0
movzx edx, al
test edx, edx
je 0x516d01
jmp 0x516f53
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516d15
jmp 0x516f53
mov ecx, dword [ebp - 8]
call fcn.0051b100
movzx eax, al
test eax, eax
je 0x516d38
mov byte [ebp - 0x1045], 1
mov ecx, dword [ebp - 8]
call fcn.00522660
jmp 0x516f53
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516d4c
jmp 0x516f53
mov eax, dword [ebp - 0x1014]
sub eax, dword [ebp - 0x1024]
mov ecx, dword [ebp - 0x1010]
sbb ecx, dword [ebp - 0x1020]
push ecx
push eax
call fcn.005144d0
add esp, 8
mov dword [ebp - 0x109c], eax
mov dword [ebp - 0x1098], edx
cmp dword [ebp - 0x1098], 0
jl 0x516dfa
jg 0x516d8e
cmp dword [ebp - 0x109c], 8
jb 0x516dfa
mov ecx, dword [ebp - 8]
call fcn.00549c00
push 0xf
call fcn.00517150
add esp, 4
push 0x23
call fcn.005170c0
add esp, 4
mov eax, dword [ebp - 0x1040]
and eax, reloc.WS2_32.dll_closesocket
jns 0x516dbc
dec eax
or eax, 0xfffffffc
inc eax
mov ecx, dword [ebp - 0x1040]
add ecx, 1
mov dword [ebp - 0x1040], ecx
test eax, eax
jne 0x516dfa
push 0x40000
mov ecx, 0x63b3f0
call fcn.00557fa0
mov ecx, dword [ebp - 8]
call fcn.005196f0
mov eax, dword [ebp - 8]
mov byte [eax + 0x6d5], 1
mov eax, dword [ebp - 8]
mov byte [eax + 0xa8d], 1
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516e0e
jmp 0x516f53
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xd43]
test ecx, ecx
je 0x516e24
mov ecx, dword [ebp - 8]
call fcn.00547ae0
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516e38
jmp 0x516f53
mov eax, dword [ebp - 0x1014]
sub eax, dword [ebp - 0x1034]
mov ecx, dword [ebp - 0x1010]
sbb ecx, dword [ebp - 0x1030]
push ecx
push eax
call fcn.005144d0
add esp, 8
mov dword [ebp - 0x109c], eax
mov dword [ebp - 0x1098], edx
cmp dword [ebp - 0x1098], 0
jl 0x516e9a
jg 0x516e7a
cmp dword [ebp - 0x109c], 0xa
jb 0x516e9a
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x1034], eax
mov ecx, dword [ebp - 0x1010]
mov dword [ebp - 0x1030], ecx
mov ecx, dword [ebp - 8]
call fcn.00522890
mov ecx, dword [ebp - 8]
call fcn.00510510
movzx eax, al
test eax, eax
je 0x516eae
jmp 0x516f53
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0x8d]
test ecx, ecx
jne 0x516ec1
jmp 0x516aad
mov ecx, dword [ebp - 0x1014]
sub ecx, dword [ebp - 0x102c]
mov esi, dword [ebp - 0x1010]
sbb esi, dword [ebp - 0x1028]
mov eax, dword [ebp - 0x1044]
cdq
mov dword [ebp - 0x109c], ecx
mov dword [ebp - 0x1098], esi
mov dword [ebp - 0x10a4], eax
mov dword [ebp - 0x10a0], edx
mov edx, dword [ebp - 0x1098]
cmp edx, dword [ebp - 0x10a0]
jl 0x516f18
jg 0x516f16
mov eax, dword [ebp - 0x109c]
cmp eax, dword [ebp - 0x10a4]
jb 0x516f18
jmp 0x516f4e
mov eax, dword [ebp - 0x1010]
cmp eax, dword [ebp - 0x1028]
jg 0x516f4e
jl 0x516f36
mov ecx, dword [ebp - 0x1014]
cmp ecx, dword [ebp - 0x102c]
jae 0x516f4e
mov eax, dword [ebp - 0x1014]
mov dword [ebp - 0x102c], eax
mov ecx, dword [ebp - 0x1010]
mov dword [ebp - 0x1028], ecx
jmp 0x516aad
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xff2]
test ecx, ecx
jne 0x516f6d
push 0
push 0
mov ecx, dword [ebp - 8]
call fcn.005172d0
mov ecx, dword [ebp - 8]
call fcn.00522660
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xff2]
neg ecx
sbb ecx, ecx
add ecx, 1
mov byte [ebp - 0x1051], cl
push 0
push 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0x80]
call eax
movzx eax, byte [ebp - 0x1051]
test eax, eax
je 0x516fbe
mov eax, dword [ebp - 8]
add eax, 0x710
push eax
mov ecx, dword [ebp - 8]
call fcn.00515ae0
jmp 0x516fd3
mov ecx, dword [ebp - 8]
add ecx, 0x710
call fcn.004110d0
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [ebp - 8]
call fcn.00510ca0
push 1
mov ecx, dword [ebp - 8]
call fcn.005171e0
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 0xff2]
test ecx, ecx
jne 0x517025
movzx eax, byte [ebp - 0x1045]
test eax, eax
je 0x51700d
push 0x4ef6
mov ecx, dword [ebp - 8]
call fcn.00517210
jmp 0x517025
movzx eax, byte [ebp - 0x1046]
test eax, eax
je 0x517025
push 0x4ef1
mov ecx, dword [ebp - 8]
call fcn.00517210
push 0
push 1
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0x64]
call eax
mov ecx, dword [ebp - 8]
call fcn.00510cd0
push 0
push 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0x80]
call eax
push 0xf
call fcn.00517150
add esp, 4
push 0x23
call fcn.005170c0
add esp, 4
push 0x2800
mov ecx, 0x63b3f0
call fcn.00557fa0
push 0x200000
call fcn.005170a0
add esp, 4
call fcn.0053d2e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0058841d
mov esp, ebp
pop ebp
ret