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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46a2a3
mov eax, dword fs:[0]
push eax
sub esp, 0x508
mov eax, dword [0x4977b8]
xor eax, esp
mov dword [esp + 0x500], eax
push ebx
push esi
push edi
mov eax, dword [0x4977b8]
xor eax, esp
push eax
lea eax, [esp + 0x518]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x18], edi
push dword [0x4a1510]
lea eax, [edi + 0x150]
push str.Bootstrapper::parseCmdLine_params_counter___d
push eax
call fcn.00408d80
add esp, 0xc
cmp dword [0x4a1510], 1
jne 0x4173b6
mov byte [edi + 0x47], 1
mov eax, dword [edi]
mov ebx, dword [0x4a1518]
mov ecx, edi
call dword [eax + 0xd4]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push esi
push dword [ebx + 4]
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
test eax, eax
jne 0x4179f3
push dword [ebx + 4]
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x5c], 0x2b
call fcn.00408227
push ecx
lea eax, [esp + 0x5c]
xor ebx, ebx
push eax
lea edx, [esp + 0x1d8]
lea ecx, [esp + 0x54]
mov dword [esp + 0x528], ebx
call fcn.0042ac45
pop ecx
pop ecx
push ebx
push 1
lea ecx, [esp + 0x1d8]
mov byte [esp + 0x528], 2
call fcn.00409522
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.00421679
mov dword [esp + 0x1c], eax
mov byte [esp + 0x520], 3
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
sub eax, ecx
push 0x18
cdq
pop esi
idiv esi
mov dword [esp + 0x24], esi
test eax, eax
je 0x417682
mov esi, ebx
mov edi, ebx
lea eax, [esi + ecx]
push 0x47dd60
mov dword [esp + 0x18], eax
call fcn.004010b3
pop ecx
mov ecx, dword [esp + 0x14]
push eax
push ebx
push 0x47dd60
call fcn.0040947f
mov dword [esp + 0x38], eax
cmp eax, 0xffffffff
je 0x417595
mov ecx, dword [esp + 0x14]
push eax
push ebx
lea eax, [esp + 0xf8]
push eax
call fcn.0041f9e4
mov byte [esp + 0x520], 4
cmp dword [esp + 0x104], 8
mov eax, dword [esp + 0x100]
lea ecx, [esp + 0xf0]
cmovae ecx, dword [esp + 0xf0]
lea edx, [esp + 0xf0]
cmovae edx, dword [esp + 0xf0]
lea eax, [ecx + eax*2]
push edx
lea ecx, [esp + 0xf4]
cmovae ecx, dword [esp + 0xf4]
push eax
push ecx
lea ecx, [esp + 0xa4]
call fcn.00421c6b
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
add esp, 0xc
inc eax
push 0xffffffffffffffff
push eax
lea eax, [esp + 0x178]
lea ecx, [esi + ecx]
push eax
call fcn.0041f9e4
lea eax, [esp + 0x170]
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x290]
mov byte [esp + 0x524], 5
call fcn.00421cb1
pop ecx
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x524], 6
call fcn.00423b2f
push eax
add eax, 0x10
push eax
push ecx
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x2c]
call fcn.00423b69
lea ecx, [esp + 0x28c]
call fcn.00406f4d
push ebx
push 1
lea ecx, [esp + 0x178]
call fcn.00409522
lea ecx, [esp + 0xf0]
jmp 0x417651
push dword [esp + 0x14]
lea ecx, [esp + 0xdc]
call fcn.004081ff
mov byte [esp + 0x520], 7
cmp dword [esp + 0xec], 8
mov eax, dword [esp + 0xe8]
lea ecx, [esp + 0xd8]
cmovae ecx, dword [esp + 0xd8]
lea edx, [esp + 0xd8]
cmovae edx, dword [esp + 0xd8]
lea eax, [ecx + eax*2]
push edx
lea ecx, [esp + 0xdc]
cmovae ecx, dword [esp + 0xdc]
push eax
push ecx
lea ecx, [esp + 0xa0]
call fcn.00421c6b
add esp, 8
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x25c]
call fcn.00421d03
pop ecx
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x524], 8
call fcn.00423c26
push eax
add eax, 0x10
push eax
push ecx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x2c]
call fcn.00423b69
push ebx
push 1
lea ecx, [esp + 0x260]
call fcn.00409522
lea ecx, [esp + 0xd8]
push ebx
push 1
mov byte [esp + 0x528], 3
call fcn.00409522
mov ecx, dword [esp + 0x4c]
push 0x18
pop eax
add esi, eax
mov eax, dword [esp + 0x50]
sub eax, ecx
cdq
idiv dword [esp + 0x24]
inc edi
cmp edi, eax
jb 0x41746a
mov edi, dword [esp + 0x18]
push 0x47dd64
lea ecx, [esp + 0x1fc]
call fcn.00408227
lea eax, [esp + 0x1f8]
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x24]
call fcn.004201a0
mov esi, dword [eax]
push ebx
push 1
lea ecx, [esp + 0x200]
call fcn.00409522
cmp esi, dword [esp + 0x1c]
je 0x417706
lea edx, [esi + 0x28]
lea ecx, [esp + 0x210]
call fcn.0042a731
lea esi, [edi + 0xec]
push eax
mov ecx, esi
call fcn.00407d1a
lea ecx, [esp + 0x210]
call fcn.00407d52
cmp dword [esi + 0x14], 0x10
jb 0x4176f1
mov esi, dword [esi]
push esi
lea eax, [edi + 0x150]
push str.Bootstrapper::parseCmdLine:_browserTracerId__value___s
push eax
call fcn.00408d80
add esp, 0xc
push str.launchtime
lea ecx, [esp + 0x11c]
call fcn.00408227
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x24]
call fcn.004201a0
mov esi, dword [eax]
push ebx
push 1
lea ecx, [esp + 0x120]
call fcn.00409522
cmp esi, dword [esp + 0x1c]
je 0x41791e
cmp dword [esi + 0x3c], 8
jb 0x417756
mov ecx, dword [esi + 0x28]
jmp 0x417759
lea ecx, [esi + 0x28]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x9c], ecx
lea eax, [ecx + eax*2]
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xa0]
call fcn.0042426a
test al, al
je 0x4179b6
push ecx
mov ecx, esp
push 1
call fcn.00412d3c
push ecx
mov ecx, esp
push ecx
push 1
call fcn.00412da0
mov ecx, esp
push 0x7b2
call fcn.00412d6a
lea ecx, [esp + 0xb4]
call fcn.00412dce
mov eax, dword [eax]
mov dword [esp + 0x18], eax
push ecx
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x20]
xorps xmm0, xmm0
push eax
lea ecx, [esp + 0x48]
movlpd qword [esp + 0x98], xmm0
call fcn.0041fa15
lea ecx, [esp + 0x2c]
call fcn.00420636
lea ecx, [esp + 0x2c]
call fcn.00420f95
test al, al
jne 0x417828
lea ecx, [esp + 0x3c]
call fcn.00420f95
test al, al
jne 0x417828
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
sbb eax, dword [esp + 0x40]
xor edx, edx
push eax
push ecx
push ebx
xor ecx, ecx
call fcn.0042055e
add esp, 0xc
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
jmp 0x41787c
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x74]
call fcn.004222e9
push dword [eax + 4]
push dword [eax]
call fcn.00420a25
pop ecx
pop ecx
push eax
lea ecx, [esp + 0x48]
call fcn.00412ea6
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push ebx
push 0x3e8
push edx
push eax
call fcn.004593b0
sub eax, dword [esp + 0x64]
mov dword [esp + 0x114], 0x4206
sbb edx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
fild qword [esp + 0x24]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
divss xmm0, dword [0x485b48]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x108], xmm0
push str.LaunchTime
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x524], 0xa
call fcn.00407cc8
lea eax, [esp + 0x108]
push eax
lea eax, [esp + 0x1bc]
push eax
lea ecx, [edi + 0x148]
mov byte [esp + 0x528], 0xb
call fcn.0042b650
lea ecx, [esp + 0x1b8]
call fcn.00407d52
mov byte [esp + 0x520], 3
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call dword [eax + 0xfc]
mov dword [esp + 0x154], 0x102
push str.ProtocolHandler
lea ecx, [esp + 0x18c]
mov byte [esp + 0x524], 0xc
call fcn.00407cc8
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x18c]
push eax
lea ecx, [edi + 0x148]
mov byte [esp + 0x528], 0xd
call fcn.0042b650
lea ecx, [esp + 0x188]
call fcn.00407d52
lea ecx, [esp + 0x1c]
call fcn.00420177
lea ecx, [esp + 0x4c]
call fcn.0042013f
mov ecx, dword [esp + 0x518]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x500]
xor ecx, esp
call fcn.0044a9a4
mov esp, ebp
pop ebp
ret
push str.bad_cast
lea ecx, [esp + 0x7c]
call fcn.0044a9ce
mov dword [esp + 0x78], vtable.boost::bad_lexical_cast.0
mov dword [esp + 0x84], 0x499c90
mov dword [esp + 0x88], 0x499ce0
lea ecx, [esp + 0x78]
mov byte [esp + 0x520], 9
call fcn.00424237
mov dword [esp + 0x1f4], 0x101
push str.ProtocolHandler
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x524], 0xe
call fcn.00407cc8
lea eax, [esp + 0x1e8]
push eax
lea eax, [esp + 0x1a4]
push eax
lea ecx, [edi + 0x148]
mov byte [esp + 0x528], 0xf
call fcn.0042b650
lea ecx, [esp + 0x1a0]
call fcn.00407d52
or dword [esp + 0x520], 0xffffffff
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
cmp dword [0x4a1510], eax
jle 0x417992
xor ebx, ebx
mov eax, dword [0x4a1518]
mov ecx, dword [esp + 0x14]
mov esi, dword [eax + ecx*4]
push esi
push ecx
lea eax, [edi + 0x150]
push str.Bootstrapper::parseCmdLine_paramIndex___d__value___S
push eax
call fcn.00408d80
add esp, 0x10
mov edx, str._wait
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417aca
mov ecx, dword [esp + 0x14]
lea eax, [ecx + 1]
cmp eax, dword [0x4a1510]
jge 0x417f20
mov eax, dword [0x4a1518]
push dword [eax + ecx*4 + 4]
call fcn.0044c54b
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [esp + 0x14]
jmp 0x417f06
mov edx, str._ide
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417c75
lea eax, [edi + 0x150]
push str.option:_ide
push eax
call fcn.00408d80
pop ecx
pop ecx
xor esi, esi
inc esi
push 0x47768c
lea ecx, [esp + 0x134]
mov dword [edi + 0x3c], esi
call fcn.00407cc8
lea edx, [esp + 0x130]
lea ecx, [esp + 0x240]
mov dword [esp + 0x520], 0x11
call fcn.0042a7a8
lea ecx, [edi + 0x130]
push eax
call fcn.0040827d
push ebx
push esi
lea ecx, [esp + 0x248]
call fcn.00409522
or esi, 0xffffffff
lea ecx, [esp + 0x130]
mov dword [esp + 0x520], esi
call fcn.00407d52
mov ecx, dword [esp + 0x14]
lea edx, [ecx + 1]
cmp edx, dword [0x4a1510]
jge 0x417f06
mov eax, dword [0x4a1518]
mov eax, dword [eax + ecx*4 + 4]
cmp word [eax], 0x2d
je 0x417f06
lea eax, [esp + 0x2bc]
push eax
mov eax, dword [0x4a1518]
mov dword [esp + 0x18], edx
push dword [eax + edx*4]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, esi
je 0x417f06
push 0x47d0e8
call fcn.004010b3
pop ecx
push eax
push 0x47d0e8
lea ecx, [edi + 0x130]
call fcn.0040b278
push str._fileLocation
lea ecx, [esp + 0x15c]
call fcn.00407cc8
lea edx, [esp + 0x158]
lea ecx, [esp + 0x228]
mov dword [esp + 0x520], 0x12
call fcn.0042a7a8
push esi
push ebx
push eax
lea ecx, [edi + 0x130]
mov byte [esp + 0x52c], 0x13
call fcn.00409346
push ebx
push 1
lea ecx, [esp + 0x230]
call fcn.00409522
lea ecx, [esp + 0x158]
mov dword [esp + 0x520], esi
call fcn.00407d52
mov esi, 0x47de54
push esi
call fcn.004010b3
pop ecx
push eax
push esi
lea ecx, [edi + 0x130]
call fcn.0040b278
mov ecx, dword [0x4a1518]
mov eax, dword [esp + 0x14]
mov esi, dword [ecx + eax*4]
push esi
call fcn.004010b3
pop ecx
push eax
push esi
lea esi, [edi + 0x130]
mov ecx, esi
call fcn.0040b278
push 0x47d0e4
call fcn.004010b3
pop ecx
push eax
push 0x47d0e4
mov ecx, esi
jmp 0x417f01
mov edx, 0x47de5c
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417ca0
lea eax, [edi + 0x150]
push str.option:_q
push eax
call fcn.00408d80
pop ecx
pop ecx
mov byte [edi + 0x4b], bl
jmp 0x417f06
mov edx, str._qbg
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417cce
lea eax, [edi + 0x150]
push str.option:_qbg
push eax
call fcn.00408d80
pop ecx
pop ecx
mov word [edi + 0x4b], 0x100
jmp 0x417f06
mov edx, str._qbgnorun
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417d03
lea eax, [edi + 0x150]
push str.option:_qbgnorun
push eax
call fcn.00408d80
pop ecx
pop ecx
mov word [edi + 0x4b], 0x100
mov byte [edi + 0xa0], 1
jmp 0x417f06
mov edx, str._alluser
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417d2e
lea eax, [edi + 0x150]
push str.option:_alluser
push eax
call fcn.00408d80
pop ecx
pop ecx
mov byte [edi + 0x4d], bl
jmp 0x417f06
mov edx, str._browser
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417d5d
lea eax, [edi + 0x150]
push str.option:_browser
push eax
call fcn.00408d80
mov dword [edi + 0x3c], 1
mov esi, str._browser
jmp 0x417d87
mov edx, str._uninstall
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417da2
lea eax, [edi + 0x150]
push str.option:_Uninstall
push eax
call fcn.00408d80
mov byte [edi + 0x48], 1
mov esi, 0x479d50
push esi
call fcn.004010b3
add esp, 0xc
lea ecx, [edi + 0x130]
push eax
push esi
call fcn.00409ffc
jmp 0x417f06
mov edx, str._install
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417dc9
lea eax, [edi + 0x150]
push str.option:_Install
push eax
call fcn.00408d80
mov byte [edi + 0x51], 1
jmp 0x417dee
mov edx, str._failIfNotUpToDate
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417e15
lea eax, [edi + 0x150]
push str.option:_FailIfNotUpToDate
push eax
call fcn.00408d80
mov byte [edi + 0x49], 1
mov esi, 0x479d50
push esi
call fcn.004010b3
add esp, 0xc
lea ecx, [edi + 0x130]
push eax
push esi
call fcn.00409ffc
mov dword [edi + 0x3c], 0xa
jmp 0x417f06
mov edx, str._force
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417e41
lea eax, [edi + 0x150]
push str.option:_force
push eax
call fcn.00408d80
pop ecx
pop ecx
mov byte [edi + 0x46], 1
jmp 0x417f06
mov edx, str._debug
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417e6d
lea eax, [edi + 0x150]
push str.option:_debug
push eax
call fcn.00408d80
pop ecx
pop ecx
mov byte [edi + 0x4a], 1
jmp 0x417f06
mov edx, str._prePlay
mov ecx, esi
call fcn.0040c477
test eax, eax
jne 0x417eaf
lea eax, [edi + 0x150]
push str.option:_prePlay
push eax
call fcn.00408d80
mov esi, str._nop
push esi
call fcn.004010b3
add esp, 0xc
lea ecx, [edi + 0x130]
push eax
push esi
call fcn.00409ffc
mov byte [edi + 0x50], 1
jmp 0x417f06
push dword [0x4a1510]
mov eax, dword [edi]
lea ecx, [esp + 0x18]
push ecx
push dword [0x4a1518]
mov ecx, edi
call dword [eax + 0x100]
test al, al
jne 0x417f06
cmp dword [edi + 0x140], ebx
je 0x417ef2
push 0x47d0e8
call fcn.004010b3
pop ecx
push eax
push 0x47d0e8
lea ecx, [edi + 0x130]
call fcn.0040b278
push esi
call fcn.004010b3
pop ecx
push eax
push esi
lea ecx, [edi + 0x130]
call fcn.0040b278
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [0x4a1510]
jl 0x417a66
jmp 0x417992
push esi
lea eax, [esp + 0x278]
push str.Bad_argument__s
push eax
call fcn.0042a994
add esp, 0xc
push eax
lea ecx, [esp + 0xb4]
mov dword [esp + 0x524], 0x10
call fcn.00401208
push 0x48a8c0
lea eax, [esp + 0xb4]
push eax
call fcn.0044fb93
int3