Function at 0x43f2c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x478872
mov eax, dword fs:[0]
push eax
sub esp, 0x62c
mov eax, dword [0x49ef38]
xor eax, esp
mov dword [esp + 0x628], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x49ef38]
xor eax, esp
push eax
lea eax, [esp + 0x640]
mov dword fs:[0], eax
mov eax, dword [esp + 0x654]
mov ebp, dword [esp + 0x658]
mov dword [esp + 0x20], eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
xor esi, esi
mov ecx, 0x49f4e4
mov dword [esp + 0x648], esi
call eax
add eax, 0x10
mov dword [esp + 0x58], eax
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
mov byte [esp + 0x648], 1
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x24], esi
push 0x106
lea edx, [esp + 0x8a]
xor ecx, ecx
push esi
push edx
mov byte [esp + 0x654], 3
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], esi
mov word [esp + 0x90], cx
call sub.MSVCR90.dll_memset
mov eax, dword [0x49f4e4]
mov edx, dword [eax + 0xc]
add esp, 0xc
mov ecx, 0x49f4e4
call edx
add eax, 0x10
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
push eax
push 0x48e3c4
push 1
push esi
push 0x48e3e4
mov byte [esp + 0x65c], 4
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, esi
jl 0x43fc50
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
lea edx, [esp + 0x48]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
test eax, eax
jl 0x43fc50
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
lea edx, [esp + 0x40]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jl 0x43fc50
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x84]
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
test eax, eax
jl 0x43fc50
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov ebx, dword [sym.imp.ole32.dll_StringFromGUID2]
push 0x28
lea ecx, [esp + 0x190]
push ecx
lea edx, [esp + 0x6c]
push edx
call ebx
lea eax, [esp + 0x18c]
push eax
lea ecx, [esp + 0x54]
push 0x47ddf0
push ecx
call fcn.00402eb0
mov esi, dword [esp + 0x65c]
add esp, 0xc
test esi, esi
jne 0x43f46b
push 0x80004003
call fcn.004633e0
push 0x485524
lea ecx, [esp + 0x20]
call fcn.004066f0
mov edi, eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov byte [esp + 0x650], 5
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x43f49b
call fcn.00401460
mov edi, dword [edi]
test edi, edi
je 0x43f4a5
mov ecx, dword [edi]
jmp 0x43f4a7
xor ecx, ecx
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x6c]
push ecx
push esi
call eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x648], 4
call fcn.00407910
mov esi, dword [esp + 0x20]
push esi
push str.OrigName
push str.Ident
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00426c50
add esp, 0x10
test eax, eax
jne 0x43f4ee
push str.Samsung_WM
mov ecx, esi
call fcn.004034b0
lea ecx, [esp + 0x30]
push ecx
push 0x47e42c
push str.SoftwareSamsungHomeDownloader
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00426c50
mov edx, dword [esp + 0x40]
add esp, 0x10
cmp dword [edx - 0xc], 0
je 0x43f52f
lea eax, [esp + 0x30]
push eax
call fcn.0042b640
add esp, 4
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call fcn.00404480
jmp 0x43f556
push 0x28
lea edx, [esp + 0x1e0]
push edx
lea eax, [esp + 0x6c]
push eax
call ebx
lea ecx, [esp + 0x1dc]
push ecx
push 0x47ddf0
push ebp
call fcn.00402eb0
add esp, 0xc
mov edi, dword [esp + 0x650]
xor ebp, ebp
cmp edi, ebp
jne 0x43f56d
push 0x80004003
call fcn.004633e0
push 0x484b88
lea ecx, [esp + 0x1c]
call fcn.004066f0
mov esi, eax
push str.Count
lea ecx, [esp + 0x20]
mov byte [esp + 0x64c], 6
call fcn.004066f0
mov ecx, dword [esi]
mov byte [esp + 0x648], 7
cmp ecx, ebp
je 0x43f5a5
mov ecx, dword [ecx]
jmp 0x43f5a7
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f5b1
mov eax, dword [eax]
jmp 0x43f5b3
xor eax, eax
mov edx, dword [edi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push edi
call eax
lea ecx, [esp + 0x1c]
call fcn.00407910
lea ecx, [esp + 0x18]
mov byte [esp + 0x648], 4
call fcn.00407910
mov esi, dword [esp + 0x650]
cmp esi, ebp
jne 0x43f5ec
push 0x80004003
call fcn.004633e0
push str.DEFAULTVALUE
lea ecx, [esp + 0x1c]
call fcn.004066f0
mov edi, eax
push str.HARDWAREID0
lea ecx, [esp + 0x20]
mov byte [esp + 0x64c], 8
call fcn.004066f0
mov ecx, dword [edi]
mov byte [esp + 0x648], 9
cmp ecx, ebp
je 0x43f624
mov ecx, dword [ecx]
jmp 0x43f626
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43f630
mov eax, dword [eax]
jmp 0x43f632
xor eax, eax
mov edx, dword [esi]
push ecx
push eax
mov eax, dword [edx + 0x6c]
push esi
call eax
lea ecx, [esp + 0x1c]
call fcn.00407910
lea ecx, [esp + 0x18]
mov byte [esp + 0x648], 4
call fcn.00407910
mov esi, dword [esp + 0x650]
cmp esi, ebp
jne 0x43f66b
push 0x80004003
call fcn.004633e0
push 0x4854f0
lea ecx, [esp + 0x20]
call fcn.004066f0
mov edi, eax
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov byte [esp + 0x650], 0xa
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
cmp eax, ebp
jne 0x43f69d
call fcn.00401460
mov edi, dword [edi]
cmp edi, ebp
je 0x43f6a7
mov ecx, dword [edi]
jmp 0x43f6a9
xor ecx, ecx
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x6c]
push ecx
push esi
call eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x648], 4
call fcn.00407910
call fcn.00455790
lea ecx, [esp + 0x44]
push ecx
call fcn.00455350
add esp, 4
cmp eax, ebp
jl 0x43fc50
xor ebx, ebx
mov edx, dword [0x49f4e4]
mov eax, dword [edx + 0xc]
mov ecx, 0x49f4e4
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
lea edx, [esp + 0x54]
push edx
lea edx, [esp + 0x2c]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
mov byte [esp + 0x658], 0xb
call eax
cmp eax, ebp
jne 0x43fbf5
cmp dword [esp + 0x54], 1
jne 0x43fc3f
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push 0x4816b0
push eax
mov eax, dword [ecx]
call eax
cmp eax, ebp
jl 0x43f794
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
push 0x104
lea edx, [esp + 0x230]
push edx
push eax
mov eax, dword [ecx + 0x44]
call eax
mov esi, eax
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x43f772
mov dword [esp + 0x24], ebp
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, ebp
jge 0x43f794
xor eax, eax
mov word [esp + 0x22c], ax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [edi - 0x10]
jmp 0x43fbcb
push ecx
lea edx, [esp + 0x230]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00406330
lea eax, [esp + 0x60]
push eax
call fcn.0042e590
add esp, 8
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x64c], 0xc
call fcn.00404480
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov byte [esp + 0x648], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f7ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push ecx
lea edx, [esp + 0x230]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00406330
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x650], 0xd
call fcn.00419a30
mov ecx, eax
mov byte [esp + 0x650], 0xb
call fcn.00410930
mov byte [esp + 0x648], 0xe
call fcn.00419a30
push ecx
lea edx, [esp + 0x230]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.00406330
call fcn.00417080
movzx eax, ax
mov ecx, 0x6662
add esp, 4
cmp ax, cx
je 0x43f87c
mov edx, 0x6785
cmp ax, dx
je 0x43f87c
mov ecx, 0x6619
cmp ax, cx
je 0x43f87c
mov edx, 0x6797
cmp ax, dx
jne 0x43fb90
push 0xd5c
call fcn.00472036
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
mov byte [esp + 0x648], 0xf
cmp esi, ebp
je 0x43f8b0
call fcn.00455790
push eax
mov ecx, esi
call fcn.0044e410
mov esi, eax
mov dword [esp + 0x18], eax
jmp 0x43f8b6
xor esi, esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x648], 0xe
cmp esi, ebp
je 0x43fb90
mov eax, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.0044ea10
cmp eax, ebp
jl 0x43fb86
cmp dword [esi + 0xae4], ebp
je 0x43fb86
lea ecx, [esp + 0x14]
call fcn.00402420
mov dword [esp + 0x20], ebp
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
push eax
mov eax, dword [ecx + 0x2c]
mov byte [esp + 0x650], 0x12
call eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x54]
push edx
lea edx, [esp + 0x40]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
push 0x104
lea edx, [esp + 0x438]
push edx
push eax
mov eax, dword [ecx + 0x18]
call eax
xor ecx, ecx
cmp eax, ebp
setge cl
test ecx, ecx
jl 0x43fbfd
push ebx
lea edx, [esp + 0x18]
push str.HARDWAREID_d
push edx
call fcn.00402eb0
mov edi, dword [esp + 0x65c]
add esp, 0xc
cmp edi, ebp
je 0x43f461
lea eax, [esp + 0x22c]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00423c40
mov ecx, dword [esi]
push eax
push edi
call ecx
push ebx
lea edx, [esp + 0x18]
push str.StorageName_d
push edx
call fcn.00402eb0
mov edi, dword [esp + 0x65c]
add esp, 0xc
inc ebx
cmp edi, ebp
je 0x43f461
lea eax, [esp + 0x434]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00423c40
mov ecx, dword [esi]
push eax
push edi
call ecx
push ebx
lea edx, [esp + 0x18]
push 0x482a00
push edx
call fcn.00402eb0
mov edi, dword [esp + 0x65c]
add esp, 0xc
cmp edi, ebp
je 0x43f461
push str.Count
lea ecx, [esp + 0x64]
call fcn.004066f0
mov eax, dword [eax]
mov byte [esp + 0x648], 0x13
cmp eax, ebp
je 0x43fa1d
mov ebp, dword [eax]
jmp 0x43fa1f
xor ebp, ebp
mov esi, dword [edi]
lea ecx, [esp + 0x14]
add esi, 0x6c
call fcn.00423c40
push eax
mov eax, dword [esi]
push ebp
push edi
call eax
lea ecx, [esp + 0x60]
call fcn.00407910
lea ecx, [esp + 0x34]
call fcn.00402420
lea ecx, [esp + 0x434]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x64c], 0x14
call fcn.004034b0
lea ecx, [esp + 0x34]
call fcn.00407d50
push eax
lea ecx, [esp + 0x38]
call fcn.00404480
lea edx, [ebx - 1]
push edx
lea eax, [esp + 0x18]
push str.IsInternalMemory_d
push eax
call fcn.00402eb0
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.00402420
lea ecx, [esp + 0x38]
push ecx
push str.Folder
push str.SystemStorageManagerProfilesSDMemory
push reloc.OLEAUT32.dll_SysReAllocString
mov byte [esp + 0x658], 0x15
call fcn.00426c50
add esp, 0x10
lea ecx, [esp + 0x38]
call fcn.00407d50
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.004069b0
mov edi, dword [esp + 0x658]
add esp, 8
test al, al
je 0x43fb05
test edi, edi
je 0x43f461
push str.false
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00423c40
mov ecx, dword [esi]
push eax
push edi
call ecx
jmp 0x43fb2d
test edi, edi
je 0x43f461
push str.true
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00423c40
mov edx, dword [esi]
push eax
push edi
call edx
lea ecx, [esp + 0x38]
call fcn.00401e10
lea ecx, [esp + 0x34]
call fcn.00401e10
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x648], 0x11
test eax, eax
je 0x43fb57
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
mov byte [esp + 0x648], 0x10
test eax, eax
je 0x43fb6f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x648], 0xe
call fcn.00401e10
mov esi, dword [esp + 0x18]
xor ebp, ebp
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x648], 0xb
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fbc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x648], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43f6e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43f6e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x43fc3f
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x648], 0x11
cmp eax, ebp
je 0x43fc15
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x20]
mov byte [esp + 0x648], 0x10
cmp eax, ebp
je 0x43fc2d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x14]
call fcn.00401e10
lea ecx, [esp + 0x1c]
call fcn.00401e10
lea ecx, [esp + 0x2c]
mov byte [esp + 0x648], 4
call fcn.00401e10
mov eax, dword [esp + 0x44]
test eax, eax
je 0x43fc68
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x43fc78
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x48]
test eax, eax
je 0x43fc88
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x43fc98
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
mov byte [esp + 0x648], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fcc0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x648], 2
test eax, eax
je 0x43fcd8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x648], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fd00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov byte [esp + 0x648], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43fd28
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x650]
mov dword [esp + 0x648], 0xffffffff
test eax, eax
je 0x43fd46
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
mov ecx, dword [esp + 0x640]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x628]
xor ecx, esp
call fcn.00471f66
add esp, 0x638
ret