Function at 0x475af0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x310
mov edi, dword [ebp + 8]
mov eax, dword [0x80e040]
xor eax, ebp
mov dword [esp + 0x308], eax
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x475b1b
mov eax, dword [edi + 4]
test eax, eax
je 0x475c08
push edi
call fcn.00615200
add esp, 4
test al, al
je 0x475bc1
xor eax, eax
dec eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x74]
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov ecx, esi
call fcn.00561680
push esi
push 3
call fcn.004af6e0
add esp, 8
test al, al
je 0x475d27
lea eax, [esp + 0x40]
lea ecx, [esp + 0x74]
push 7
push 0x782b82
push eax
call fcn.00562f80
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x475b8b
mov eax, dword [edi + 4]
mov edi, dword [edi]
test eax, eax
js 0x47617d
sete cl
test edi, edi
setne dl
or dl, cl
je 0x47617d
lea edx, [esp + 0x34]
lea esi, [esp + 0x40]
mov ecx, esi
push eax
push edi
push edx
call fcn.00562f80
mov ecx, esi
call fcn.005617f0
jmp 0x475d30
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
test eax, eax
jle 0x475c4a
lea esi, [esp + 0x74]
mov ecx, esi
push 0xffffffffffffffff
push 0x67
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x32
push str.Unexpected:_offline_directory_needs_to_be_a_GUID:
push eax
call fcn.00535510
add esp, 0xc
push edi
push eax
call fcn.004b54f0
add esp, 8
jmp 0x475c43
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
test eax, eax
jle 0x475c4a
lea esi, [esp + 0x74]
mov ecx, esi
push 0xffffffffffffffff
push 0x62
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x39
push str.Unexpected:_offline_install_without_an_offline_directory.
push eax
call fcn.00535510
add esp, 0xc
mov ecx, esi
call fcn.004ba5c0
mov ecx, dword [esp + 0x308]
xor ecx, ebp
call fcn.005c9f16
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
cmp eax, 2
jl 0x475cc1
lea edi, [esp + 0x74]
mov ecx, edi
push 0xfffffffffffffffe
push 0x85
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x1a
push str.No_manifest_data_for_app:
push eax
call fcn.00535510
add esp, 0xc
mov edx, dword [ebp + 0xc]
movsx ecx, byte [edx + 0xb]
test ecx, ecx
jns 0x475caf
mov ecx, dword [edx + 4]
mov edx, dword [edx]
push ecx
push edx
push eax
call fcn.00535510
add esp, 0xc
mov ecx, edi
call fcn.004ba5c0
mov esi, dword [esp + 4]
mov ecx, esi
call fcn.00666f60
push esi
call fcn.005c8b90
add esp, 4
lea ecx, [esp + 0x34]
call fcn.005617f0
jmp 0x475c4a
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
test eax, eax
jle 0x475cd5
lea esi, [esp + 0x74]
mov ecx, esi
push 0xffffffffffffffff
push 0x73
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x24
push str.Unexpected:_offline_directory_empty.
push eax
call fcn.00535510
add esp, 0xc
mov ecx, esi
call fcn.004ba5c0
jmp 0x475cd5
lea ecx, [esp + 0x34]
call fcn.00561680
lea esi, [esp + 0x74]
mov ecx, esi
call fcn.005617f0
movsx eax, byte [esp + 0x3f]
test eax, eax
jns 0x475d48
mov eax, dword [esp + 0x38]
test eax, eax
je 0x475ce3
mov edi, dword [ebp + 0xc]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x40], xmm0
xor eax, eax
dec eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
lea ecx, [esp + 0x34]
push 0x13
push str.OfflineManifest.gup
push esi
call fcn.004bbb50
push esi
call fcn.004ad160
add esp, 4
test al, al
jne 0x475e0f
movsx eax, byte [edi + 0xb]
mov edx, edi
test eax, eax
jns 0x475d9c
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
test eax, eax
js 0x47617d
sete cl
test edx, edx
setne ch
or ch, cl
je 0x47617d
lea ebx, [esp + 0x58]
lea ecx, [esp + 0x34]
push eax
push edx
push ebx
call fcn.004bbb50
lea edi, [esp + 0x68]
mov ecx, ebx
push 4
push str..gup
push edi
call fcn.004bb870
mov ecx, esi
push edi
call fcn.00561870
mov ecx, edi
call fcn.005617f0
mov ecx, ebx
call fcn.005617f0
push esi
call fcn.004ad160
add esp, 4
test al, al
jne 0x475e03
mov byte [esp + 0x40], 0
xor eax, eax
jmp 0x475e1b
lea ecx, [esp + 0x40]
push esi
call fcn.005616a0
jmp 0x475e19
lea ecx, [esp + 0x40]
push esi
call fcn.005616e0
mov al, 1
mov byte [esp + 0x4c], al
lea ecx, [esp + 0x74]
call fcn.005617f0
cmp byte [esp + 0x4c], 0
je 0x475efa
xor edi, edi
lea eax, [esp + 0x58]
mov dword [eax + 4], edi
mov dword [eax], edi
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.004b03f0
add esp, 8
test al, al
je 0x475ea0
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp ebx, 0x100001
sbb eax, 0
jl 0x4763ba
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
cmp eax, 2
jl 0x475f4d
lea edi, [esp + 0x74]
mov ecx, edi
push 0xfffffffffffffffe
push 0x44
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x1b
push str.Manifest_file_is_too_large.
jmp 0x475ed7
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
cmp eax, 2
jl 0x475f4d
lea edi, [esp + 0x74]
mov ecx, edi
push 0xfffffffffffffffe
push 0x3e
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x24
push str.Cannot_determine_manifest_file_size.
push eax
call fcn.00535510
add esp, 0xc
mov ecx, edi
xor edi, edi
jmp 0x475f48
mov ebx, dword [esp + 4]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.0054ae20
jmp 0x475fa9
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
xor edi, edi
cmp eax, 2
jl 0x475f4d
lea ebx, [esp + 0x74]
mov ecx, ebx
push 0xfffffffffffffffe
push 0x38
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x1e
push str.Cannot_find_manifest_file_in:
push eax
call fcn.00535510
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
push eax
call fcn.00647a40
add esp, 8
mov ecx, ebx
call fcn.004ba5c0
cmp byte [esp + 0x4c], 1
jne 0x475f5d
lea ecx, [esp + 0x40]
call fcn.005617f0
test edi, edi
je 0x475cd5
mov ebx, edi
mov edi, dword [ebp + 0x14]
movq xmm0, qword [ebx + 4]
movq qword [edi], xmm0
lea ecx, [edi + 8]
lea eax, [ebx + 0xc]
cmp ecx, eax
mov dword [esp + 4], ebx
je 0x475fa9
cmp byte [edi + 0x13], 0
movzx edx, byte [ebx + 0x17]
js 0x4761b3
test dl, dl
js 0x475ee6
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov ebx, dword [esp + 4]
lea ecx, [edi + 0x14]
lea eax, [ebx + 0x18]
cmp ecx, eax
je 0x475fdb
cmp byte [edi + 0x1f], 0
movzx edx, byte [ebx + 0x23]
js 0x476199
test dl, dl
js 0x4760a7
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov ebx, dword [esp + 4]
lea esi, [ebx + 4]
lea ecx, [edi + 0x20]
lea eax, [ebx + 0x24]
cmp ecx, eax
je 0x476010
cmp byte [edi + 0x2b], 0
mov edx, dword [esp + 4]
movzx edx, byte [edx + 0x2f]
js 0x47617f
test dl, dl
js 0x476093
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
cmp esi, edi
mov ebx, dword [esp + 4]
je 0x476038
add edi, 0x2c
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
mov ecx, edx
sub ecx, eax
sar ecx, 2
imul esi, ecx, 0x96f96f97
mov ecx, edi
push esi
push edx
push eax
call fcn.00477390
mov edx, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
mov dword [esp + 0x20], eax
cmp edx, eax
je 0x475c60
mov eax, dword [ebp + 0xc]
movsx esi, byte [eax + 0xb]
mov ecx, eax
test esi, esi
jns 0x47605c
mov esi, dword [eax + 4]
mov ecx, dword [eax]
lea eax, [ecx + esi]
mov dword [esp + 0x1c], eax
test esi, esi
js 0x47617d
setne al
mov dword [esp + 0xc], ecx
test ecx, ecx
sete cl
test al, cl
jne 0x47617d
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
lea eax, [esi - 1]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], esi
jmp 0x4760ec
mov eax, dword [esp + 4]
push dword [eax + 0x28]
push dword [eax + 0x24]
call fcn.0054ae20
jmp 0x476010
mov ebx, dword [esp + 4]
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
call fcn.0054ae20
jmp 0x475fdb
lea eax, [edi + ebx]
add ebx, dword [esp + 0xc]
add edi, dword [esp + 0x18]
cmp eax, edi
jne 0x4760d4
cmp ebx, dword [esp + 0x1c]
je 0x4761da
mov edx, dword [esp + 8]
add edx, 0x9c
cmp edx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
je 0x475c60
movsx ebx, byte [edx + 0xb]
mov edi, edx
test ebx, ebx
jns 0x4760fb
mov ebx, dword [edx + 4]
mov edi, dword [edx]
test ebx, ebx
js 0x47617d
sete al
test edi, edi
setne cl
or cl, al
je 0x47617d
mov dword [esp + 8], edx
mov dword [esp + 0x18], ebx
cmp ebx, esi
jne 0x4760d4
mov ebx, dword [esp + 0xc]
mov eax, edi
cmp dword [esp + 0x14], 0
je 0x4760c2
mov eax, dword [esp + 0x18]
lea esi, [eax - 1]
xor edx, edx
mov eax, dword [esp + 0xc]
movzx ebx, byte [eax + edx]
movzx eax, byte [edi + edx]
mov ecx, eax
add cl, 0xbf
mov ch, al
add ch, 0x20
cmp cl, 0x1a
movzx ecx, ch
cmovae ecx, eax
mov eax, ebx
add al, 0xbf
mov ah, bl
add ah, 0x20
cmp al, 0x1a
movzx eax, ah
cmovae eax, ebx
cmp cl, al
jne 0x4760d4
lea ebx, [edx + 1]
cmp esi, edx
je 0x4760bb
cmp dword [esp + 0x24], edx
mov edx, ebx
jne 0x47612d
jmp 0x4760bb
ud2
test dl, dl
jns 0x47618d
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x28]
mov eax, dword [eax + 0x24]
push edx
push eax
call fcn.0054acf0
jmp 0x476010
test dl, dl
jns 0x4761a7
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
push edx
push eax
call fcn.0054acf0
jmp 0x475fd7
test dl, dl
jns 0x4761c1
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
push edx
push eax
call fcn.0054acf0
jmp 0x475fa5
push dword [esi + 0x40]
push dword [esi + 0x3c]
call fcn.0054ae20
jmp 0x476208
mov esi, dword [esp + 8]
lea eax, [esi + 0x3c]
mov ecx, dword [ebp + 0x18]
cmp eax, ecx
je 0x476208
cmp byte [ecx + 0xb], 0
movzx edx, byte [esi + 0x47]
js 0x47655c
test dl, dl
js 0x4761cd
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
xor eax, eax
dec eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx + 0xb]
test eax, eax
jns 0x476227
mov eax, dword [edx + 4]
mov edx, dword [edx]
test eax, eax
mov edi, dword [ebp + 0x10]
js 0x47617d
sete cl
test edx, edx
mov esi, edx
setne dl
or dl, cl
je 0x47617d
lea edx, [esp + 0x40]
lea ecx, [esp + 0x34]
push eax
push esi
push edx
call fcn.004bbb50
xor eax, eax
dec eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov ecx, dword [esp + 8]
movsx eax, byte [ecx + 0x6b]
test eax, eax
js 0x4762fc
lea edx, [ecx + 0x60]
test eax, eax
sete cl
test edx, edx
setne ch
or ch, cl
je 0x47617d
lea esi, [esp + 0x68]
lea ebx, [esp + 0x40]
mov ecx, ebx
push eax
push edx
push esi
call fcn.004bbb50
push esi
call fcn.004ad160
add esp, 4
test al, al
jne 0x47630f
xor eax, eax
lea esi, [esp + 0x58]
mov dword [esi + 8], eax
pxor xmm0, xmm0
movq qword [esi], xmm0
xor edx, edx
inc edx
mov edi, ebx
lea ebx, [esp + 0x74]
mov ecx, ebx
push eax
push edx
push esi
push edx
push eax
push edi
call fcn.004aeb60
lea eax, [esp + 0x28]
mov ecx, ebx
push eax
call fcn.004aed20
mov ecx, ebx
call fcn.004aec70
cmp byte [esi + 0xb], 0
jns 0x4762f3
push dword [esp + 0x58]
call fcn.005c8b90
add esp, 4
mov esi, dword [esp + 8]
mov edi, dword [ebp + 0x10]
jmp 0x47631d
mov eax, dword [ecx + 0x64]
test eax, eax
js 0x47617d
mov edx, dword [ecx + 0x60]
jmp 0x476276
lea ecx, [esp + 0x28]
push esi
call fcn.005616a0
mov esi, dword [esp + 8]
lea ecx, [esp + 0x68]
call fcn.005617f0
lea ecx, [esp + 0x40]
call fcn.005617f0
lea ebx, [esp + 0x28]
mov ecx, dword [ebp + 0x1c]
push ebx
call fcn.00561870
mov ecx, ebx
call fcn.005617f0
lea eax, [esi + 0x6c]
mov ecx, dword [ebp + 0x20]
cmp eax, ecx
je 0x476370
cmp byte [ecx + 0xb], 0
movzx edx, byte [esi + 0x77]
js 0x476572
test dl, dl
js 0x476388
mov ecx, dword [eax + 8]
mov edx, dword [ebp + 0x20]
mov dword [edx + 8], ecx
movq xmm0, qword [eax]
movq qword [edx], xmm0
movsx eax, byte [edi + 0xb]
test eax, eax
jns 0x47637b
mov eax, dword [edi + 4]
test eax, eax
je 0x475cc1
jmp 0x476588
push dword [esi + 0x70]
push dword [esi + 0x6c]
call fcn.0054ae20
jmp 0x476370
mov edi, ebx
or edi, 7
inc edi
push edi
call fcn.005c8b59
add esp, 4
mov esi, eax
mov dword [esp + 0x68], eax
or edi, 0x80000000
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], ebx
jmp 0x4763e5
xor eax, eax
dec eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
cmp ebx, 0x7ffffff8
jae 0x476679
cmp ebx, 0xb
jae 0x476395
lea esi, [esp + 0x68]
mov byte [esi + 0xb], bl
test ebx, ebx
je 0x4763f1
push ebx
push 0
push esi
call fcn.005cced0
add esp, 0xc
mov byte [esi + ebx], 0
cmp byte [esp + 0x4c], 0
je 0x476674
mov eax, dword [esp + 0x58]
cmp byte [esp + 0x73], 0
lea esi, [esp + 0x40]
js 0x476415
lea ecx, [esp + 0x68]
jmp 0x476419
mov ecx, dword [esp + 0x68]
push eax
push ecx
push esi
call fcn.00643db0
add esp, 0xc
cmp eax, 0xffffffff
je 0x476500
push 0x48
call fcn.005c8b59
add esp, 4
mov edi, eax
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x30], xmm0
pxor xmm0, xmm0
movq qword [eax + 0x40], xmm0
mov ecx, eax
call fcn.00666f10
mov dword [edi], 0x776a08
lea eax, [esp + 0x68]
mov ecx, edi
push eax
call fcn.00667880
test al, al
jne 0x4764e4
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
cmp eax, 2
jl 0x4764ce
lea ecx, [esp + 0x74]
push 0xfffffffffffffffe
push 0x4f
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x23
push str.Failed_to_parse_XML_manifest_file:
push eax
call fcn.00535510
add esp, 0xc
cmp byte [esp + 0x4c], 0
je 0x476674
push esi
push eax
call fcn.00647a40
add esp, 8
lea ecx, [esp + 0x74]
call fcn.004ba5c0
test edi, edi
je 0x4764e2
mov ecx, edi
call fcn.00666f60
push edi
call fcn.005c8b90
add esp, 4
xor edi, edi
cmp byte [esp + 0x73], 0
jns 0x475f4d
push dword [esp + 0x68]
call fcn.005c8b90
add esp, 4
jmp 0x475f4d
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
xor edi, edi
cmp eax, 2
jl 0x4764e4
lea ecx, [esp + 0x74]
push 0xfffffffffffffffe
push 0x4a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x1e
push str.Failed_to_load_manifest_file:
push eax
call fcn.00535510
add esp, 0xc
cmp byte [esp + 0x4c], 0
je 0x476674
push esi
push eax
call fcn.00647a40
add esp, 8
lea ecx, [esp + 0x74]
call fcn.004ba5c0
jmp 0x4764e4
test dl, dl
jns 0x476566
mov edx, dword [esi + 0x40]
mov eax, dword [esi + 0x3c]
push edx
push eax
call fcn.0054acf0
jmp 0x476208
test dl, dl
jns 0x47657c
mov edx, dword [esi + 0x70]
mov eax, dword [esi + 0x6c]
push edx
push eax
call fcn.0054acf0
jmp 0x476370
mov dword [esp + 0x40], 0xffffffff
push 0x18
push edi
push dword [esi + 0x94]
push dword [esi + 0x90]
lea eax, [esp + 0x50]
push eax
call fcn.00604c80
add esp, 0x14
mov edx, dword [esp + 0x40]
cmp edx, dword [esi + 0x94]
je 0x4765fb
lea eax, [edx + 0x24]
mov ecx, dword [ebp + 0x24]
cmp eax, ecx
je 0x475cc1
cmp byte [ecx + 0xb], 0
movzx ebx, byte [edx + 0x2f]
js 0x47665e
test bl, bl
js 0x4765eb
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
jmp 0x475cc1
push dword [edx + 0x28]
push dword [edx + 0x24]
call fcn.0054ae20
jmp 0x475cc1
push 0x2a
push str.....chromeupdaterwinmanifest_util.cc
call fcn.00560ce0
add esp, 8
cmp eax, 2
jl 0x475cc1
mov esi, edi
lea edi, [esp + 0x74]
mov ecx, edi
push 0xfffffffffffffffe
push 0x9c
push str.....chromeupdaterwinmanifest_util.cc
call fcn.004ba0e0
lea eax, [esp + 0x7c]
push 0x1e
push str.Install_data_index_not_found:
push eax
call fcn.00535510
add esp, 0xc
movsx ecx, byte [esi + 0xb]
test ecx, ecx
jns 0x476654
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [esp + 0x10], edx
push ecx
push dword [esp + 0x14]
jmp 0x475cb1
test bl, bl
jns 0x476668
mov ebx, dword [edx + 0x28]
mov eax, dword [edx + 0x24]
push ebx
push eax
call fcn.0054acf0
jmp 0x475cc1
call fcn.005fe540
lea ecx, [esp + 0x68]
call fcn.005fe450
int3