Function at 0x43f850
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x479db2
mov eax, dword fs:[0]
push eax
sub esp, 0x62c
mov eax, dword [0x4a4eb0]
xor eax, esp
mov dword [esp + 0x628], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4a4eb0]
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 [0x4a540c]
mov eax, dword [edx + 0xc]
xor esi, esi
mov ecx, 0x4a540c
mov dword [esp + 0x648], esi
call eax
add eax, 0x10
mov dword [esp + 0x58], eax
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
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 fcn.004748cc
mov eax, dword [0x4a540c]
mov edx, dword [eax + 0xc]
add esp, 0xc
mov ecx, 0x4a540c
call edx
add eax, 0x10
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
push eax
push 0x4940b0
push 1
push esi
push 0x4940d0
mov byte [esp + 0x65c], 4
call dword [0x47f57c]
cmp eax, esi
jl 0x4401e0
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 0x4401e0
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 0x4401e0
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 0x4401e0
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 [0x47f554]
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 0x47fdf8
push ecx
call fcn.00402e50
mov esi, dword [esp + 0x65c]
add esp, 0xc
test esi, esi
jne 0x43f9fb
push 0x80004003
call fcn.00465c30
push 0x487a0c
lea ecx, [esp + 0x20]
call fcn.00406690
mov edi, eax
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov byte [esp + 0x650], 5
call dword [0x47f438]
test eax, eax
jne 0x43fa2b
call fcn.00401460
mov edi, dword [edi]
test edi, edi
je 0x43fa35
mov ecx, dword [edi]
jmp 0x43fa37
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.00407c20
mov esi, dword [esp + 0x20]
push esi
push str.OrigName
push str.Ident
push 0x80000002
call fcn.00429ac0
add esp, 0x10
test eax, eax
jne 0x43fa7e
push str.Samsung_WM
mov ecx, esi
call fcn.00403450
lea ecx, [esp + 0x30]
push ecx
push 0x4804ec
push str.SoftwareSamsungHomeDownloader
push 0x80000002
call fcn.00429ac0
mov edx, dword [esp + 0x40]
add esp, 0x10
cmp dword [edx - 0xc], 0
je 0x43fabf
lea eax, [esp + 0x30]
push eax
call fcn.0042dc60
add esp, 4
lea ecx, [esp + 0x30]
push ecx
mov ecx, ebp
call fcn.00404410
jmp 0x43fae6
push 0x28
lea edx, [esp + 0x1e0]
push edx
lea eax, [esp + 0x6c]
push eax
call ebx
lea ecx, [esp + 0x1dc]
push ecx
push 0x47fdf8
push ebp
call fcn.00402e50
add esp, 0xc
mov edi, dword [esp + 0x650]
xor ebp, ebp
cmp edi, ebp
jne 0x43fafd
push 0x80004003
call fcn.00465c30
push 0x486f78
lea ecx, [esp + 0x1c]
call fcn.00406690
mov esi, eax
push 0x487a04
lea ecx, [esp + 0x20]
mov byte [esp + 0x64c], 6
call fcn.00406690
mov ecx, dword [esi]
mov byte [esp + 0x648], 7
cmp ecx, ebp
je 0x43fb35
mov ecx, dword [ecx]
jmp 0x43fb37
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43fb41
mov eax, dword [eax]
jmp 0x43fb43
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.00407c20
lea ecx, [esp + 0x18]
mov byte [esp + 0x648], 4
call fcn.00407c20
mov esi, dword [esp + 0x650]
cmp esi, ebp
jne 0x43fb7c
push 0x80004003
call fcn.00465c30
push str.DEFAULTVALUE
lea ecx, [esp + 0x1c]
call fcn.00406690
mov edi, eax
push str.HARDWAREID0
lea ecx, [esp + 0x20]
mov byte [esp + 0x64c], 8
call fcn.00406690
mov ecx, dword [edi]
mov byte [esp + 0x648], 9
cmp ecx, ebp
je 0x43fbb4
mov ecx, dword [ecx]
jmp 0x43fbb6
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x43fbc0
mov eax, dword [eax]
jmp 0x43fbc2
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.00407c20
lea ecx, [esp + 0x18]
mov byte [esp + 0x648], 4
call fcn.00407c20
mov esi, dword [esp + 0x650]
cmp esi, ebp
jne 0x43fbfb
push 0x80004003
call fcn.00465c30
push 0x4879d8
lea ecx, [esp + 0x20]
call fcn.00406690
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 [0x47f438]
cmp eax, ebp
jne 0x43fc2d
call fcn.00401460
mov edi, dword [edi]
cmp edi, ebp
je 0x43fc37
mov ecx, dword [edi]
jmp 0x43fc39
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.00407c20
call fcn.004559e0
lea ecx, [esp + 0x44]
push ecx
call fcn.00455810
add esp, 4
cmp eax, ebp
jl 0x4401e0
xor ebx, ebx
mov edx, dword [0x4a540c]
mov eax, dword [edx + 0xc]
mov ecx, 0x4a540c
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 0x440185
cmp dword [esp + 0x54], 1
jne 0x4401cf
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push 0x484034
push eax
mov eax, dword [ecx]
call eax
cmp eax, ebp
jl 0x43fd24
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 0x43fd02
mov dword [esp + 0x24], ebp
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp esi, ebp
jge 0x43fd24
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 0x44015b
push ecx
lea edx, [esp + 0x230]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004062c0
lea eax, [esp + 0x60]
push eax
call fcn.0042f8c0
add esp, 8
push eax
lea ecx, [esp + 0x30]
mov byte [esp + 0x64c], 0xc
call fcn.00404410
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 0x43fd7f
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.004062c0
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x650], 0xd
call fcn.0041afb0
mov ecx, eax
mov byte [esp + 0x650], 0xb
call fcn.00411a90
mov byte [esp + 0x648], 0xe
call fcn.0041afb0
push ecx
lea edx, [esp + 0x230]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.004062c0
call fcn.0044efb0
movzx eax, ax
mov ecx, 0x6662
add esp, 4
cmp ax, cx
je 0x43fe0c
mov edx, 0x6785
cmp ax, dx
je 0x43fe0c
mov ecx, 0x6619
cmp ax, cx
je 0x43fe0c
mov edx, 0x6797
cmp ax, dx
jne 0x440120
push 0xd5c
call fcn.0047489a
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
mov byte [esp + 0x648], 0xf
cmp esi, ebp
je 0x43fe40
call fcn.004559e0
push eax
mov ecx, esi
call fcn.0044c840
mov esi, eax
mov dword [esp + 0x18], eax
jmp 0x43fe46
xor esi, esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x648], 0xe
cmp esi, ebp
je 0x440120
mov eax, dword [esp + 0x28]
push eax
mov ecx, esi
call fcn.0044ce40
cmp eax, ebp
jl 0x440116
cmp dword [esi + 0xae4], ebp
je 0x440116
lea ecx, [esp + 0x14]
call fcn.004023c0
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 0x44018d
push ebx
lea edx, [esp + 0x18]
push str.HARDWAREID_d
push edx
call fcn.00402e50
mov edi, dword [esp + 0x65c]
add esp, 0xc
cmp edi, ebp
je 0x43f9f1
lea eax, [esp + 0x22c]
push eax
call dword [0x47f44c]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00406fe0
mov ecx, dword [esi]
push eax
push edi
call ecx
push ebx
lea edx, [esp + 0x18]
push str.StorageName_d
push edx
call fcn.00402e50
mov edi, dword [esp + 0x65c]
add esp, 0xc
inc ebx
cmp edi, ebp
je 0x43f9f1
lea eax, [esp + 0x434]
push eax
call dword [0x47f44c]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00406fe0
mov ecx, dword [esi]
push eax
push edi
call ecx
push ebx
lea edx, [esp + 0x18]
push 0x480460
push edx
call fcn.00402e50
mov edi, dword [esp + 0x65c]
add esp, 0xc
cmp edi, ebp
je 0x43f9f1
push 0x487a04
lea ecx, [esp + 0x64]
call fcn.00406690
mov eax, dword [eax]
mov byte [esp + 0x648], 0x13
cmp eax, ebp
je 0x43ffad
mov ebp, dword [eax]
jmp 0x43ffaf
xor ebp, ebp
mov esi, dword [edi]
lea ecx, [esp + 0x14]
add esi, 0x6c
call fcn.00406fe0
push eax
mov eax, dword [esi]
push ebp
push edi
call eax
lea ecx, [esp + 0x60]
call fcn.00407c20
lea ecx, [esp + 0x34]
call fcn.004023c0
lea ecx, [esp + 0x434]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x64c], 0x14
call fcn.00403450
lea ecx, [esp + 0x34]
call fcn.00408060
push eax
lea ecx, [esp + 0x38]
call fcn.00404410
lea edx, [ebx - 1]
push edx
lea eax, [esp + 0x18]
push str.IsInternalMemory_d
push eax
call fcn.00402e50
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.004023c0
lea ecx, [esp + 0x38]
push ecx
push str.Folder
push str.SystemStorageManagerProfilesSDMemory
push 0x80000002
mov byte [esp + 0x658], 0x15
call fcn.00429ac0
add esp, 0x10
lea ecx, [esp + 0x38]
call fcn.00408060
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.00406950
mov edi, dword [esp + 0x658]
add esp, 8
test al, al
je 0x440095
test edi, edi
je 0x43f9f1
push str.false
call dword [0x47f44c]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00406fe0
mov ecx, dword [esi]
push eax
push edi
call ecx
jmp 0x4400bd
test edi, edi
je 0x43f9f1
push str.true
call dword [0x47f44c]
mov esi, dword [edi]
push eax
lea ecx, [esp + 0x18]
add esi, 0x6c
call fcn.00406fe0
mov edx, dword [esi]
push eax
push edi
call edx
lea ecx, [esp + 0x38]
call fcn.0044e330
lea ecx, [esp + 0x34]
call fcn.0044e330
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x648], 0x11
test eax, eax
je 0x4400e7
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 0x4400ff
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x14]
mov byte [esp + 0x648], 0xe
call fcn.0044e330
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 0x440154
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 0x43fc70
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43fc70
call dword [0x47f224]
jmp 0x4401cf
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x648], 0x11
cmp eax, ebp
je 0x4401a5
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 0x4401bd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x14]
call fcn.0044e330
lea ecx, [esp + 0x1c]
call fcn.0044e330
lea ecx, [esp + 0x2c]
mov byte [esp + 0x648], 4
call fcn.0044e330
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4401f8
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 0x440208
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x48]
test eax, eax
je 0x440218
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x440228
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 0x440250
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 0x440268
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 0x440290
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 0x4402b8
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 0x4402d6
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.004747ca
add esp, 0x638
ret