Function at 0x39e9962f
Capabilities:
Copy file

Disassembly:
push 0x3c8
mov eax, 0x39ebd018
call fcn.39eaecf3
mov edi, ecx
mov dword [ebp - 0x354], edi
mov byte [edi + 0x1a8], 1
xor ebx, ebx
mov dword [ebp - 0x358], ebx
call fcn.39e97b71
test al, al
je 0x39e9a0f5
cmp dword [edi + 0x1c0], ebx
je 0x39e9a0f5
mov eax, dword [edi + 0xc]
push 0x39e049d4
mov esi, 0x39e0922c
push esi
push eax
lea eax, [ebp - 0x2c8]
push eax
call fcn.39e958f2
mov dword [ebp - 4], ebx
mov eax, dword [edi + 0xc]
push 0x39e049b8
push esi
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.39e958f2
mov byte [ebp - 4], 1
mov eax, dword [edi + 0xc]
push 0x39e2546c
push esi
push eax
lea eax, [ebp - 0x290]
push eax
call fcn.39e958f2
mov byte [ebp - 4], 2
cmp dword [ebp - 0x278], 8
mov eax, dword [ebp - 0x28c]
jae 0x39e996d5
lea eax, [ebp - 0x28c]
push eax
lea ecx, [ebp - 0x364]
call fcn.39e6620c
mov dword [ebp - 0x368], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x294], 8
mov eax, dword [ebp - 0x2a8]
jae 0x39e99700
lea eax, [ebp - 0x2a8]
push eax
lea ecx, [ebp - 0x36c]
call fcn.39e6620c
mov dword [ebp - 0x360], eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x2b0], 8
mov eax, dword [ebp - 0x2c4]
jae 0x39e9972b
lea eax, [ebp - 0x2c4]
push eax
lea ecx, [ebp - 0x35c]
call fcn.39e6620c
mov byte [ebp - 4], 5
push dword [ebp - 0x368]
push dword [ebp - 0x360]
push eax
lea ecx, [ebp - 0x374]
call fcn.39e9956e
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x35c]
call fcn.39e66256
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x36c]
call fcn.39e66256
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x364]
call fcn.39e66256
mov eax, dword [edi + 0x1e0]
cmp eax, ebx
je 0x39e99842
cmp eax, 0x20
je 0x39e997f4
cmp eax, 0x28
je 0x39e997f4
cmp eax, 0x40
je 0x39e997f4
push 0x39e09a60
mov ecx, edi
call fcn.39e9879d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x374]
call fcn.39e9799a
mov byte [ebp - 4], 1
push ebx
push 1
lea ecx, [ebp - 0x290]
call fcn.39eb4742
mov byte [ebp - 4], bl
push ebx
push 1
lea ecx, [ebp - 0x2ac]
call fcn.39eb4742
or dword [ebp - 4], 0xffffffff
push ebx
push 1
lea ecx, [ebp - 0x2c8]
call fcn.39eb4742
xor al, al
jmp 0x39e9a0fb
shr eax, 1
push eax
call fcn.39eb4742
pop ecx
mov dword [ebp - 0x358], eax
mov ecx, dword [edi + 0x1e0]
lea eax, [edi + 0x1cc]
cmp dword [eax + 0x18], 8
jb 0x39e9981a
mov eax, dword [eax + 4]
jmp 0x39e9981d
add eax, 4
shr ecx, 1
push ecx
mov edx, eax
lea esi, [ebp - 0x358]
call fcn.39eb4742
test al, al
jne 0x39e9983d
push 0x39e099e0
mov ecx, edi
call fcn.39e9879d
mov esi, 0x39e0922c
push dword [ebp - 0x358]
call fcn.39ea2aaf
movzx eax, al
push eax
call dword [sym.imp.dlmgr.dll_public:_static_int___stdcall_dlmgr::CDownloadJob::NeedToCheckCert_int_]
test eax, eax
setne al
movzx eax, al
push eax
mov ecx, edi
call fcn.39e9908f
mov byte [edi + 0x1a8], al
cmp al, bl
jne 0x39e99c7d
mov eax, dword [edi + 0xc]
push 0x39e091d0
push esi
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.39e958f2
mov byte [ebp - 4], 0xa
xor eax, eax
mov word [ebp - 0x220], ax
push 0x206
push ebx
lea eax, [ebp - 0x21e]
push eax
call fcn.39e6fce0
add esp, 0xc
lea eax, [edi + 0x18c]
cmp dword [eax + 0x18], 8
jb 0x39e998be
mov eax, dword [eax + 4]
jmp 0x39e998c1
add eax, 4
lea ecx, [edi + 0x11c]
push 8
pop esi
cmp dword [ecx + 0x18], esi
jb 0x39e998d4
mov ecx, dword [ecx + 4]
jmp 0x39e998d7
add ecx, 4
cmp dword [ebp - 0x240], esi
mov edx, dword [ebp - 0x254]
jae 0x39e998eb
lea edx, [ebp - 0x254]
push eax
push ecx
push edx
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x220]
push eax
call fcn.39eb4742
add esp, 0x18
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
mov byte [ebp - 4], 0xb
lea eax, [edi + 0x100]
push eax
lea eax, [ebp - 0x23c]
push eax
push SysReAllocStringLen
lea ecx, [ebp - 0x350]
call dword [sym.imp.dlmgr.dll_public:_void___thiscall_CRegistryValue::constructor_struct_HKEY_____class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
mov byte [ebp - 4], 0xd
push ebx
push 1
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
mov byte [ebp - 4], 0xe
lea eax, [edi + 4]
push eax
push dword [edi + 0x10]
call dword [sym.imp.dlmgr.dll_public:_static_class_dlmgr::CDownloadManager____stdcall_dlmgr::CDownloadManager::Create_struct_dlmgr::IDownloadClient___struct_dlmgr::IDownloadLog__]
push eax
lea ecx, [ebp - 0x368]
call fcn.39e97a4d
mov byte [ebp - 4], 0xf
mov ecx, edi
call fcn.39e9853f
cmp dword [eax + 0x18], esi
jb 0x39e9997d
mov eax, dword [eax + 4]
jmp 0x39e99980
add eax, 4
mov dword [ebp - 0x35c], eax
lea eax, [edi + 0x1ac]
cmp dword [eax + 0x18], esi
jb 0x39e99996
mov eax, dword [eax + 4]
jmp 0x39e99999
add eax, 4
mov dword [ebp - 0x360], eax
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x364], eax
lea esi, [edi + 0x18]
push dword [ebp - 0x358]
call fcn.39ea2aaf
movzx eax, al
push eax
call dword [sym.imp.dlmgr.dll_public:_static_int___stdcall_dlmgr::CDownloadJob::NeedToCheckCert_int_]
test eax, eax
setne al
movzx eax, al
push eax
lea eax, [ebp - 0x350]
push eax
push dword [ebp - 0x35c]
push dword [ebp - 0x360]
mov ecx, dword [ebp - 0x364]
call dword [sym.imp.dlmgr.dll_public:_class_dlmgr::CDownloadJob____thiscall_dlmgr::CDownloadManager::CreateJob_unsigned_short_int_const___unsigned_short_int_const___class_CRegistryValue_const___bool__unsigned_char_const__const]
push eax
mov ecx, esi
call fcn.39eb4742
mov ecx, dword [esi]
call dword [sym.imp.dlmgr.dll_public:_enum_dlmgr::CDownloadJob::JobType___thiscall_dlmgr::CDownloadJob::GetJobType_void_]
cmp eax, 2
jne 0x39e99a34
push 0x39e099a0
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x23c]
push eax
push 0x6a
call fcn.39eb4742
mov byte [ebp - 4], 0xf
push ebx
push 1
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
mov ecx, dword [esi]
call dword [sym.imp.dlmgr.dll_public:_bool___thiscall_dlmgr::CDownloadJob::RunToFinish_void_]
mov byte [edi + 0x1a8], al
lea ecx, [edi + 4]
mov eax, dword [ecx]
push 0x39e09978
push 0x39e162d8
call dword [eax]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x368]
call fcn.39e979ce
mov dword [ebp - 4], 0xd
jmp 0x39e99c5b
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x350]
call dword [sym.imp.dlmgr.dll_public:_void___thiscall_CRegistryValue::destructor_void_]
mov byte [ebp - 4], 9
push ebx
push 1
lea ecx, [ebp - 0x258]
call fcn.39eb4742
cmp byte [edi + 0x1a8], bl
je 0x39e9a06a
lea ecx, [edi + 4]
mov eax, dword [ecx]
push 0x39e0995c
push 0x39e162d8
call dword [eax]
lea esi, [edi + 0xc8]
push esi
lea ecx, [edi + 0xac]
call fcn.39eb4742
test eax, eax
je 0x39e99e2f
mov ecx, edi
call fcn.39e981a4
push eax
lea ecx, [ebp - 0x258]
call fcn.39eb4742
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x23c]
call fcn.39e3c0a7
mov byte [ebp - 4], 0x19
xor eax, eax
mov word [ebp - 0x220], ax
push 0x208
push ebx
lea eax, [ebp - 0x21e]
push eax
call fcn.39e6fce0
add esp, 0xc
push 0x105
lea eax, [ebp - 0x220]
push eax
push dword [0x39ee9fb8]
call fcn.39eb4742
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
push 0xffffffffffffffff
push ebx
push esi
lea ecx, [ebp - 0x258]
call fcn.39eb4742
lea eax, [ebp - 0x23c]
push eax
push 0x39e09934
lea eax, [ebp - 0x390]
push eax
call fcn.39e4ad04
mov byte [ebp - 4], 0x1a
push 0x39e09928
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.39e567c2
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x258]
push ecx
push eax
lea eax, [ebp - 0x3b8]
push eax
call fcn.39e56816
add esp, 0x24
mov byte [ebp - 4], 0x1c
cmp dword [eax + 0x18], 8
jb 0x39e99d97
mov eax, dword [eax + 4]
jmp 0x39e99d9a
add eax, 4
push eax
mov ecx, edi
call fcn.39e9875a
mov byte [ebp - 4], 0x1b
push ebx
xor esi, esi
inc esi
push esi
lea ecx, [ebp - 0x3b8]
call fcn.39eb4742
mov byte [ebp - 4], 0x1a
push ebx
push esi
lea ecx, [ebp - 0x3d4]
call fcn.39eb4742
mov byte [ebp - 4], 0x19
push ebx
push esi
lea ecx, [ebp - 0x390]
call fcn.39eb4742
cmp dword [ebp - 0x240], 8
mov ecx, dword [ebp - 0x254]
jae 0x39e99ded
lea ecx, [ebp - 0x254]
cmp dword [ebp - 0x224], 8
mov eax, dword [ebp - 0x238]
jae 0x39e99e02
lea eax, [ebp - 0x238]
push ebx
push ecx
push eax
call dword [sym.imp.kernel32.dll_CopyFileW]
mov byte [ebp - 4], 0x18
push ebx
push esi
lea ecx, [ebp - 0x23c]
call fcn.39eb4742
mov byte [ebp - 4], 9
push ebx
push esi
lea ecx, [ebp - 0x258]
call fcn.39eb4742
jmp 0x39e99e32
xor esi, esi
inc esi
mov ecx, edi
call fcn.39e9853f
push eax
lea ecx, [ebp - 0x274]
call fcn.39eb4742
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.39e97c77
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x2dc], ebx
je 0x39e99fcc
cmp dword [ebp - 0x2d4], ebx
je 0x39e99fcc
cmp dword [ebp - 0x2d0], ebx
je 0x39e99fcc
lea ecx, [ebp - 0x258]
call fcn.39e3c0a7
mov byte [ebp - 4], 0x1f
push 0x39e09280
lea eax, [ebp - 0x258]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.39e645b5
test al, al
lea eax, [ebp - 0x274]
je 0x39e99f80
push eax
lea ecx, [ebp - 0x3b8]
call fcn.39eb4742
mov byte [ebp - 4], 0x20
push 0x39e09900
push eax
lea eax, [ebp - 0x3d4]
push eax
call fcn.39e567c2
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x258]
push ecx
push eax
lea eax, [ebp - 0x390]
push eax
call fcn.39e56816
add esp, 0x18
mov byte [ebp - 4], 0x22
cmp dword [eax + 0x18], 8
jb 0x39e99f03
mov eax, dword [eax + 4]
jmp 0x39e99f06
add eax, 4
push eax
mov ecx, edi
call fcn.39e9875a
mov byte [ebp - 4], 0x21
push ebx
push esi
lea ecx, [ebp - 0x390]
call fcn.39eb4742
mov byte [ebp - 4], 0x20
push ebx
push esi
lea ecx, [ebp - 0x3d4]
call fcn.39eb4742
mov byte [ebp - 4], 0x1f
push ebx
push esi
lea ecx, [ebp - 0x3b8]
call fcn.39eb4742
cmp dword [ebp - 0x240], 8
mov eax, dword [ebp - 0x254]
jae 0x39e99f56
lea eax, [ebp - 0x254]
push 0x39e098e0
push eax
call fcn.39eb4742
pop ecx
pop ecx
test eax, eax
jne 0x39e99fc0
lea ecx, [edi + 4]
mov eax, dword [ecx]
push 0x39e09848
push 0x39e162d8
call dword [eax]
mov byte [edi + 0x1a8], bl
jmp 0x39e99fc0
push 0x39e09818
push eax
lea eax, [ebp - 0x390]
push eax
call fcn.39e567c2
add esp, 0xc
mov byte [ebp - 4], 0x23
cmp dword [eax + 0x18], 8
jb 0x39e99fa4
mov eax, dword [eax + 4]
jmp 0x39e99fa7
add eax, 4
push eax
mov ecx, edi
call fcn.39e9875a
mov byte [ebp - 4], 0x1f
push ebx
push esi
lea ecx, [ebp - 0x390]
call fcn.39eb4742
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x258]
jmp 0x39e9a048
cmp dword [ebp - 0x25c], 8
mov eax, dword [ebp - 0x270]
jae 0x39e99fe1
lea eax, [ebp - 0x270]
push ebx
push eax
call fcn.39eb4742
pop ecx
pop ecx
test eax, eax
lea eax, [ebp - 0x274]
je 0x39e9a00f
push 0x39e097e8
push eax
lea eax, [ebp - 0x390]
push eax
call fcn.39e567c2
add esp, 0xc
mov byte [ebp - 4], 0x24
jmp 0x39e9a028
push 0x39e097b4
push eax
lea eax, [ebp - 0x390]
push eax
call fcn.39e567c2
add esp, 0xc
mov byte [ebp - 4], 0x25
cmp dword [eax + 0x18], 8
jb 0x39e9a033
mov eax, dword [eax + 4]
jmp 0x39e9a036
add eax, 4
push eax
mov ecx, edi
call fcn.39e9875a
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x390]
push ebx
push esi
call fcn.39eb4742
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x2f0]
call fcn.39e646bc
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x274]
jmp 0x39e9a099
push 0x39e0978c
lea ecx, [ebp - 0x258]
call fcn.39eb4742
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x258]
push eax
push 0x5e
call fcn.39eb4742
mov byte [ebp - 4], 9
xor esi, esi
inc esi
lea ecx, [ebp - 0x258]
push ebx
push esi
call fcn.39eb4742
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x374]
call fcn.39e9799a
mov byte [ebp - 4], 1
push ebx
push esi
lea ecx, [ebp - 0x290]
call fcn.39eb4742
mov byte [ebp - 4], bl
push ebx
push esi
lea ecx, [ebp - 0x2ac]
call fcn.39eb4742
or dword [ebp - 4], 0xffffffff
push ebx
push esi
lea ecx, [ebp - 0x2c8]
call fcn.39eb4742
cmp dword [ebp - 0x358], ebx
je 0x39e9a0f5
push dword [ebp - 0x358]
call fcn.39eb4742
pop ecx
mov al, byte [edi + 0x1a8]
call fcn.39eaed5e
ret