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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov eax, dword [0x603024]
xor eax, ebp
mov dword [esp + 0x78], eax
xor eax, eax
dec eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov eax, dword [str.SoftwareClasses]
mov dword [esp + 0x60], eax
test eax, eax
je 0x4778ce
mov edi, edx
mov esi, ecx
push eax
call fcn.00520e34
add esp, 4
lea edx, [esp + 0x60]
mov dword [edx + 4], eax
mov dword [edx + 8], 0x5eaf0c
mov dword [edx + 0xc], 1
movzx eax, byte [esi + 0xb]
test al, al
mov ecx, dword [esi]
cmovns ecx, esi
mov dword [edx + 0x10], ecx
cmovs eax, dword [esi + 4]
mov dword [edx + 0x14], eax
lea eax, [esp + 0x54]
push edx
push 3
mov dword [esp + 0xc], eax
push eax
call fcn.00466c20
add esp, 0xc
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
push 0x30
call fcn.0050397a
add esp, 4
mov esi, eax
mov eax, dword [str.URL_Protocol]
mov dword [esp + 8], eax
push eax
call fcn.00520e34
add esp, 4
cmp eax, 0x7ffffff0
jae 0x4778d1
mov ebx, eax
cmp eax, 5
mov dword [esp + 0xc], edi
mov dword [esp], esi
jae 0x4771e0
mov byte [esp + 0x6b], bl
cmp ebx, 3
jne 0x477899
mov ecx, dword [esp + 8]
movzx eax, word [ecx + 4]
mov word [esp + 0x64], ax
mov eax, dword [ecx]
mov dword [esp + 0x60], eax
lea esi, [esp + 0x60]
jmp 0x477218
lea edi, [ebx + 8]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.0050397a
add esp, 4
mov esi, eax
mov dword [esp + 0x60], eax
or edi, 0x80000000
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], ebx
mov eax, ebx
add eax, ebx
push eax
push dword [esp + 0xc]
push esi
call fcn.00506d50
add esp, 0xc
mov edi, dword [ebp + 0xc]
mov word [esi + ebx*2], 0
lea ebx, [esp + 0x48]
mov esi, dword [esp]
mov ecx, esi
push ebx
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x5c]
push eax
call fcn.00585140
mov dword [esp + 0x38], esi
cmp byte [esp + 0x6b], 0
jns 0x477251
push dword [esp + 0x60]
call fcn.005039aa
add esp, 4
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jae 0x47726f
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x38], 0
mov dword [eax], ecx
add eax, 4
mov dword [edi + 4], eax
jmp 0x47727b
lea eax, [esp + 0x38]
mov ecx, edi
push eax
call fcn.0047ac50
mov esi, dword [esp + 0x38]
mov dword [esp + 0x38], 0
test esi, esi
je 0x4772c6
cmp byte [esi + 0x27], 0
jns 0x47729c
push dword [esi + 0x1c]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x4772ad
push dword [esi + 0xc]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x4772bd
push dword [esi]
call fcn.005039aa
add esp, 4
push esi
call fcn.005039aa
add esp, 4
mov esi, ebx
cmp byte [esp + 0x53], 0
jns 0x4772db
push dword [esp + 0x48]
call fcn.005039aa
add esp, 4
mov ecx, dword [str.DefaultIcon]
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], eax
movzx ebx, byte [esp + 0x5f]
mov eax, ebx
test bl, bl
jns 0x4772fe
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 8], ecx
push ecx
call fcn.00520e34
add esp, 4
mov ecx, eax
test bl, bl
jns 0x47731c
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp]
lea edi, [eax + ecx]
cmp edi, 0x7ffffff0
jae 0x4778aa
cmp edi, 4
mov dword [esp + 0x10], ecx
ja 0x47733f
mov byte [esp + 0x53], al
mov ebx, esi
jmp 0x47736a
mov ebx, esi
add edi, 8
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.0050397a
add esp, 4
mov esi, eax
mov eax, dword [esp]
mov dword [esp + 0x48], esi
or edi, 0x80000000
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], eax
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x477388
mov eax, dword [esp]
add eax, eax
push eax
push dword [esp + 8]
push esi
call fcn.00506d50
mov eax, dword [esp + 0xc]
add esp, 0xc
mov word [esi + eax*2], 0
mov ecx, ebx
push dword [esp + 0x10]
push dword [esp + 0xc]
call fcn.004de0e0
push 0x30
call fcn.0050397a
add esp, 4
mov esi, eax
mov ecx, eax
push dword [esp + 0xc]
push ebx
call fcn.005850c0
mov dword [esp + 0x60], esi
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jae 0x4773d3
mov dword [esp + 0x60], 0
mov dword [eax], esi
add eax, 4
mov dword [edi + 4], eax
jmp 0x4773df
mov ecx, edi
lea eax, [esp + 0x60]
push eax
call fcn.0047ac50
mov esi, dword [esp + 0x60]
mov dword [esp + 0x60], 0
test esi, esi
je 0x47742a
cmp byte [esi + 0x27], 0
jns 0x477400
push dword [esi + 0x1c]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x477411
push dword [esi + 0xc]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x477421
push dword [esi]
call fcn.005039aa
add esp, 4
push esi
call fcn.005039aa
add esp, 4
mov esi, dword [str._shellopencommand]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], eax
movzx ebx, byte [esp + 0x5f]
mov edi, ebx
test bl, bl
jns 0x47744d
mov edi, dword [esp + 0x58]
push esi
call fcn.00520e34
add esp, 4
test bl, bl
jns 0x477460
mov ecx, dword [esp + 0x54]
jmp 0x477464
lea ecx, [esp + 0x54]
mov ebx, edi
add edi, eax
cmp edi, 0x7ffffff0
jae 0x4778b3
mov dword [esp], esi
cmp edi, 4
mov dword [esp + 4], eax
ja 0x477489
lea esi, [esp + 0x38]
mov byte [esi + 0xb], bl
jmp 0x4774b3
add edi, 8
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
mov esi, ecx
call fcn.0050397a
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x38], eax
or edi, 0x80000000
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ebx
mov edi, dword [ebp + 0xc]
test ebx, ebx
je 0x4774c8
lea eax, [ebx + ebx]
push eax
push ecx
push esi
call fcn.00506d50
add esp, 0xc
mov word [esi + ebx*2], 0
lea ebx, [esp + 0x38]
mov ecx, ebx
push dword [esp + 4]
push dword [esp + 4]
call fcn.004de0e0
push 0x30
call fcn.0050397a
add esp, 4
mov esi, eax
mov ecx, eax
push dword [ebp + 8]
push ebx
call fcn.005850c0
mov dword [esp + 0x60], esi
mov eax, dword [edi + 4]
cmp eax, dword [edi + 8]
jae 0x477516
mov dword [esp + 0x60], 0
mov dword [eax], esi
add eax, 4
mov dword [edi + 4], eax
jmp 0x477522
mov ecx, edi
lea eax, [esp + 0x60]
push eax
call fcn.0047ac50
mov esi, dword [esp + 0x60]
mov dword [esp + 0x60], 0
test esi, esi
je 0x47756d
cmp byte [esi + 0x27], 0
jns 0x477543
push dword [esi + 0x1c]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x477554
push dword [esi + 0xc]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x477564
push dword [esi]
call fcn.005039aa
add esp, 4
push esi
call fcn.005039aa
add esp, 4
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x54]
movzx ebx, byte [eax + 0xb]
test bl, bl
cmovs ebx, dword [eax + 4]
mov ecx, dword [eax]
cmovns ecx, eax
lea eax, [ebx + 0x13]
cmp eax, 0x7ffffff0
jae 0x4778bc
cmp eax, 4
ja 0x4775aa
lea esi, [esp + 0x28]
mov byte [esi + 0xb], bl
jmp 0x4775d8
lea edi, [ebx + 0x1b]
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
mov esi, ecx
call fcn.0050397a
mov ecx, esi
add esp, 4
mov esi, eax
mov dword [esp + 0x28], eax
or edi, 0x80000000
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x4775e6
lea eax, [ebx + ebx]
push eax
push ecx
push esi
call fcn.00506d50
add esp, 0xc
mov word [esi + ebx*2], 0
lea esi, [esp + 0x28]
mov ecx, esi
push 0x13
push str._shellopenddeexec
call fcn.004de0e0
xor eax, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], eax
push 0x30
call fcn.0050397a
add esp, 4
mov edi, eax
mov ecx, eax
lea eax, [esp + 0x60]
push eax
push esi
call fcn.005850c0
mov dword [esp + 0x18], edi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jae 0x477646
mov dword [esp + 0x18], 0
mov dword [eax], edi
add eax, 4
mov dword [ecx + 4], eax
jmp 0x477650
lea eax, [esp + 0x18]
push eax
call fcn.0047ac50
mov esi, dword [esp + 0x18]
mov dword [esp + 0x18], 0
test esi, esi
je 0x47769b
cmp byte [esi + 0x27], 0
jns 0x477671
push dword [esi + 0x1c]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x477682
push dword [esi + 0xc]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x477692
push dword [esi]
call fcn.005039aa
add esp, 4
push esi
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x6b], 0
jns 0x4776ae
push dword [esp + 0x60]
call fcn.005039aa
add esp, 4
mov esi, dword [str._shell]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
movzx ebx, byte [esp + 0x5f]
mov eax, ebx
test bl, bl
jns 0x4776d1
mov eax, dword [esp + 0x58]
mov dword [esp], eax
push esi
call fcn.00520e34
add esp, 4
test bl, bl
lea ebx, [esp + 0x54]
jns 0x4776e9
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp]
lea edi, [ecx + eax]
cmp edi, 0x7ffffff0
jae 0x4778c5
mov dword [esp + 4], esi
cmp edi, 4
mov dword [esp + 0xc], eax
ja 0x477711
lea esi, [esp + 0x18]
mov byte [esi + 0xb], cl
jmp 0x47773a
add edi, 8
and edi, 0xfffffff8
lea eax, [edi + edi]
push eax
call fcn.0050397a
add esp, 4
mov esi, eax
mov ecx, dword [esp]
mov dword [esp + 0x18], eax
or edi, 0x80000000
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x477752
mov eax, dword [esp]
add eax, eax
push eax
push ebx
push esi
call fcn.00506d50
mov ecx, dword [esp + 0xc]
add esp, 0xc
xor edi, edi
mov word [esi + ecx*2], di
lea ebx, [esp + 0x18]
mov ecx, ebx
push dword [esp + 0xc]
push dword [esp + 8]
call fcn.004de0e0
push 0x30
call fcn.0050397a
add esp, 4
mov esi, eax
mov byte [esp + 0x6b], 4
mov dword [esp + 0x64], 0x6e0065
mov dword [esp + 0x60], 0x70006f
mov word [esp + 0x68], di
mov ecx, eax
lea eax, [esp + 0x60]
push eax
push ebx
call fcn.005850c0
mov dword [esp + 0x14], esi
cmp byte [esp + 0x6b], 0
jns 0x4777b5
push dword [esp + 0x60]
call fcn.005039aa
add esp, 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
jae 0x4777d2
mov dword [esp + 0x14], 0
mov dword [eax], esi
add eax, 4
mov dword [ecx + 4], eax
jmp 0x4777dc
lea eax, [esp + 0x14]
push eax
call fcn.0047ac50
mov esi, dword [esp + 0x14]
mov dword [esp + 0x14], 0
test esi, esi
je 0x477827
cmp byte [esi + 0x27], 0
jns 0x4777fd
push dword [esi + 0x1c]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0x17], 0
jns 0x47780e
push dword [esi + 0xc]
call fcn.005039aa
add esp, 4
cmp byte [esi + 0xb], 0
jns 0x47781e
push dword [esi]
call fcn.005039aa
add esp, 4
push esi
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x23], 0
jns 0x47783a
push dword [esp + 0x18]
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x33], 0
jns 0x47784d
push dword [esp + 0x28]
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x43], 0
jns 0x477860
push dword [esp + 0x38]
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x53], 0
jns 0x477873
push dword [esp + 0x48]
call fcn.005039aa
add esp, 4
cmp byte [esp + 0x5f], 0
jns 0x477886
push dword [esp + 0x54]
call fcn.005039aa
add esp, 4
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.00504b53
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea esi, [esp + 0x60]
test ebx, ebx
jne 0x477206
jmp 0x477218
lea ecx, [esp + 0x48]
call fcn.0055adb0
lea ecx, [esp + 0x38]
call fcn.0055adb0
lea ecx, [esp + 0x28]
call fcn.0055adb0
lea ecx, [esp + 0x18]
call fcn.0055adb0
int3
lea ecx, [esp + 0x60]
call fcn.0055adb0
int3