Function at 0x45a380
Capabilities:
Check os version
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5255f8
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push esi
push edi
mov eax, dword [0x595cb8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a3c1
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0
mov esi, dword [ebp + 8]
mov ecx, esi
push str.browser
call fcn.00438d70
cmp eax, 0x59c858
je 0x45b2fd
mov al, byte [esi + 8]
test al, al
je 0x45a411
cmp al, 7
je 0x45a411
push 0x42b
push 0x56ef58
push str.type___nullValue__type___objectValue
call fcn.00508598
add esp, 0xc
mov al, byte [esi + 8]
mov byte [ebp - 0xd], al
test al, al
jne 0x45a422
mov ecx, 0x59c858
jmp 0x45a45b
mov esi, dword [esi]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x4c], str.browser
push eax
mov ecx, esi
mov dword [ebp - 0x48], 0
call fcn.004390f0
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x45a44e
mov ecx, 0x59c858
jmp 0x45a451
lea ecx, [eax + 0x18]
mov al, byte [ebp - 0xd]
mov byte [ebp - 4], 0
mov esi, dword [ebp + 8]
cmp byte [ecx + 8], 4
jne 0x45b2fd
test al, al
je 0x45a484
cmp al, 7
je 0x45a484
push 0x42b
push 0x56ef58
push str.type___nullValue__type___objectValue
call fcn.00508598
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x45a491
mov edi, 0x59c858
jmp 0x45a4c7
mov esi, dword [esi]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], str.browser
push eax
mov ecx, esi
mov dword [ebp - 0x40], 0
call fcn.004390f0
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x45a4bd
mov edi, 0x59c858
jmp 0x45a4c0
lea edi, [eax + 0x18]
mov byte [ebp - 4], 0
mov esi, dword [ebp + 8]
cmp byte [edi + 8], 4
je 0x45a4e4
push 0x2a9
push 0x56ef58
push str.type___stringValue
call fcn.00508598
add esp, 0xc
mov eax, dword [edi]
mov dword [ebp - 0x28], eax
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a4fe
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x45a53c
test eax, 0xffff0000
jne 0x45a53c
movzx eax, ax
mov ecx, eax
mov dword [ebp - 0x28], eax
call fcn.0041f3d0
test eax, eax
je 0x45a548
push dword [ebp - 0x28]
lea ecx, [ebp - 0x14]
push eax
call fcn.0041fbd0
jmp 0x45a545
push eax
lea ecx, [ebp - 0x14]
call fcn.0041fa30
mov edi, dword [ebp - 0x14]
mov byte [ebp - 4], 0xa
mov edx, dword [edi - 0xc]
mov dword [ebp - 0x1c], edx
test edx, edx
jns 0x45a560
push 0x80070057
call fcn.0041f2a0
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, edx
or eax, ecx
jge 0x45a580
push edx
lea ecx, [ebp - 0x14]
call fcn.0041fb70
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
lea eax, [edx + 1]
push eax
push edi
call fcn.005032cf
mov eax, dword [ebp - 0x1c]
add esp, 8
cmp eax, dword [edi - 8]
jg 0x45a556
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
mov ecx, esi
push 0x56df84
call fcn.00438d70
cmp eax, 0x59c858
je 0x45b21a
mov al, byte [esi + 8]
test al, al
je 0x45a5d7
cmp al, 7
je 0x45a5d7
push 0x42b
push 0x56ef58
push str.type___nullValue__type___objectValue
call fcn.00508598
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x45a5e4
mov eax, 0x59c858
jmp 0x45a61a
mov esi, dword [esi]
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x34], 0x56df84
push eax
mov ecx, esi
mov dword [ebp - 0x30], 0
call fcn.004390f0
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x45a610
mov eax, 0x59c858
jmp 0x45a613
add eax, 0x18
mov byte [ebp - 4], 0xa
mov esi, dword [ebp + 8]
cmp byte [eax + 8], 4
jne 0x45b21a
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a639
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 0x11
mov al, byte [esi + 8]
test al, al
je 0x45a66c
cmp al, 7
je 0x45a66c
push 0x42b
push 0x56ef58
push str.type___nullValue__type___objectValue
call fcn.00508598
add esp, 0xc
cmp byte [esi + 8], 0
jne 0x45a679
mov esi, 0x59c858
jmp 0x45a6ac
mov esi, dword [esi]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp + 8]
mov dword [ebp - 0x44], 0x56df84
push eax
mov ecx, esi
mov dword [ebp - 0x40], 0
call fcn.004390f0
mov eax, dword [eax]
cmp eax, dword [esi]
jne 0x45a6a5
mov esi, 0x59c858
jmp 0x45a6a8
lea esi, [eax + 0x18]
mov byte [ebp - 4], 0x11
cmp byte [esi + 8], 4
je 0x45a6c9
push 0x2a9
push 0x56ef58
push str.type___stringValue
call fcn.00508598
add esp, 0xc
mov edx, dword [esi]
test edx, edx
jne 0x45a6d3
xor ecx, ecx
jmp 0x45a6e1
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45a6d8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x20]
call fcn.0042cb10
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x20]
call fcn.0042c0f0
mov dword [ebp - 0x1c], 0
mov dword [ebp + 8], 0
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jbe 0x45a914
lea ecx, [ebp - 0x1c]
call fcn.00453260
mov dword [ebp + 8], eax
test eax, eax
jne 0x45a914
push str.OpenUrlGetDisp
lea ecx, [ebp - 0x24]
call fcn.0041f910
mov byte [ebp - 4], 0x14
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a74b
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x2c], esi
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0x2c]
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.00420ee0
add esp, 4
mov edx, eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x24]
call fcn.00421ee0
mov byte [ebp - 4], 0x15
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a79a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0x14
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a7b8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
mov eax, esi
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a7d6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a7eb
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.Failed_to_get_IShellDispatch2
mov byte [ebp - 4], 0x17
test eax, 0xffff0000
jne 0x45a822
movzx esi, ax
mov ecx, esi
call fcn.0041f3d0
test eax, eax
je 0x45a82f
push esi
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041fbd0
jmp 0x45a82f
push str.Failed_to_get_IShellDispatch2
lea ecx, [ebp - 0x1c]
call fcn.0041fa30
push str.openUrl
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x18
call fcn.0041f910
mov byte [ebp - 4], 0x19
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a859
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x1a
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x1b
cmp dword [eax + 0xc], 0
je 0x45a89b
push 2
push ecx
lea ecx, [ebp - 0x24]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x1a
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a8ba
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0x19
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a8d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x18
mov eax, esi
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a8f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
mov eax, esi
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a914
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x56ba60
mov eax, edi
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45a946
test dx, dx
je 0x45a942
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45a946
add eax, 4
add ecx, 4
test dx, dx
jne 0x45a920
xor eax, eax
jmp 0x45a94b
sbb eax, eax
or eax, 1
mov esi, dword [ebp - 0x28]
test eax, eax
sete al
test al, al
je 0x45ab0a
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a970
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, str.default_browser
mov byte [ebp - 4], 0x1c
test eax, 0xffff0000
jne 0x45a9ad
movzx ecx, ax
call fcn.0041f3d0
test eax, eax
je 0x45a9ba
mov edx, str.default_browser
movzx ecx, dx
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041fbd0
jmp 0x45a9ba
push str.default_browser
lea ecx, [ebp - 0x1c]
call fcn.0041fa30
push str.openUrl
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x1d
call fcn.0041f910
mov byte [ebp - 4], 0x1e
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45a9e4
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x40], eax
add eax, 0x10
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x1f
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x20
cmp dword [eax + 0xc], 0
je 0x45aa29
push 0
push ecx
lea ecx, [ebp - 0x24]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x1f
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45aa48
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1e
or eax, 0xffffffff
mov edx, dword [ebp - 0x40]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45aa64
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x1d
or eax, 0xffffffff
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45aa83
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45aaa2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 8], 0
jne 0x45aac1
push 1
push 0
push 0
push esi
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x45b1dd
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov edx, eax
test edx, edx
jne 0x45aad6
call fcn.0041fd30
mov eax, dword [ebp + 8]
sub esp, 0x10
xorps xmm0, xmm0
mov ecx, dword [eax]
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
push edx
push dword [ebp + 8]
movups xmmword [eax], xmm0
call dword [ecx + 0x7c]
jmp 0x45b1dd
mov ecx, 0x571e98
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45ab37
test dx, dx
je 0x45ab33
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45ab37
add eax, 4
add ecx, 4
test dx, dx
jne 0x45ab11
xor eax, eax
jmp 0x45ab3c
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x45ad23
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45ab5e
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, 0x571ea0
mov byte [ebp - 4], 0x21
test eax, 0xffff0000
jne 0x45ab9b
movzx ecx, ax
call fcn.0041f3d0
test eax, eax
je 0x45aba8
mov edx, 0x571ea0
movzx ecx, dx
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.0041fbd0
jmp 0x45aba8
push 0x571ea0
lea ecx, [ebp - 0x1c]
call fcn.0041fa30
push str.openUrl
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x22
call fcn.0041f910
mov byte [ebp - 4], 0x23
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45abd2
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x2c], eax
add eax, 0x10
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x24
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x25
cmp dword [eax + 0xc], 0
je 0x45ac17
push 0
push ecx
lea ecx, [ebp - 0x24]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x24
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ac36
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x23
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ac52
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x22
or eax, 0xffffffff
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ac71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ac90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 8], 0
jne 0x45acb2
push 1
push 0
push esi
push str.iexplore.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x45b1dd
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x45acc5
call fcn.0041fd30
push ecx
mov dword [ebp - 0x34], eax
mov ecx, esp
mov eax, 8
push str.iexplore.exe
mov word [ebp - 0x3c], ax
call fcn.0041f910
call fcn.00420290
sub esp, 0xc
mov edx, eax
mov eax, dword [ebp + 8]
mov ecx, esp
xorps xmm0, xmm0
sub esp, 0x10
mov eax, dword [eax]
movups xmmword [ecx], xmm0
mov ecx, esp
mov dword [ebp - 0x40], eax
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x3c]
push edx
push dword [ebp + 8]
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x40]
call dword [eax + 0x7c]
jmp 0x45b1dd
mov ecx, 0x571ee0
mov eax, edi
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45ad56
test dx, dx
je 0x45ad52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45ad56
add eax, 4
add ecx, 4
test dx, dx
jne 0x45ad30
xor eax, eax
jmp 0x45ad5b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x45aef0
push 0x571ee8
lea ecx, [ebp - 0x1c]
call fcn.0041f870
push str.openUrl
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x26
call fcn.0041f910
mov byte [ebp - 4], 0x27
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45ad9f
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x2c], eax
add eax, 0x10
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x28
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x29
cmp dword [eax + 0xc], 0
je 0x45ade4
push 0
push ecx
lea ecx, [ebp - 0x24]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x28
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ae03
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x27
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ae1f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x26
or eax, 0xffffffff
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ae3e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45ae5d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 8], 0
jne 0x45ae7f
push 1
push 0
push esi
push str.chrome.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x45b1dd
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x45ae92
call fcn.0041fd30
push ecx
mov dword [ebp - 0x34], eax
mov ecx, esp
mov eax, 8
push str.chrome.exe
mov word [ebp - 0x3c], ax
call fcn.0041f910
call fcn.00420290
sub esp, 0xc
mov edx, eax
mov eax, dword [ebp + 8]
mov ecx, esp
xorps xmm0, xmm0
sub esp, 0x10
mov eax, dword [eax]
movups xmmword [ecx], xmm0
mov ecx, esp
mov dword [ebp - 0x40], eax
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x3c]
push edx
push dword [ebp + 8]
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x40]
call dword [eax + 0x7c]
jmp 0x45b1dd
mov ecx, 0x571ed4
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45af1d
test dx, dx
je 0x45af19
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45af1d
add eax, 4
add ecx, 4
test dx, dx
jne 0x45aef7
xor eax, eax
jmp 0x45af22
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x45b0b7
push 0x571edc
lea ecx, [ebp - 0x1c]
call fcn.0041f870
push str.openUrl
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0x2a
call fcn.0041f910
mov byte [ebp - 4], 0x2b
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45af66
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x2c], eax
add eax, 0x10
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x2c
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x2d
cmp dword [eax + 0xc], 0
je 0x45afab
push 0
push ecx
lea ecx, [ebp - 0x24]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x2c
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45afca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2b
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45afe6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2a
or eax, 0xffffffff
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b005
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b024
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp + 8], 0
jne 0x45b046
push 1
push 0
push esi
push str.firefox.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x45b1dd
push dword [esi - 0xc]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
test eax, eax
jne 0x45b059
call fcn.0041fd30
push ecx
mov dword [ebp - 0x34], eax
mov ecx, esp
mov eax, 8
push str.firefox.exe
mov word [ebp - 0x3c], ax
call fcn.0041f910
call fcn.00420290
sub esp, 0xc
mov edx, eax
mov eax, dword [ebp + 8]
mov ecx, esp
xorps xmm0, xmm0
sub esp, 0x10
mov eax, dword [eax]
movups xmmword [ecx], xmm0
mov ecx, esp
mov dword [ebp - 0x40], eax
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [ebp - 0x3c]
push edx
push dword [ebp + 8]
movups xmmword [eax], xmm0
mov eax, dword [ebp - 0x40]
call dword [eax + 0x7c]
jmp 0x45b1dd
push str.unknown_browser
lea ecx, [ebp - 0x24]
call fcn.0041f870
push str.openUrl
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x2e
call fcn.0041f910
mov byte [ebp - 4], 0x2f
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45b0ee
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov dword [ebp - 0x1c], eax
add eax, 0x10
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 0x30
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x2c]
call fcn.00420f70
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x31
push ecx
mov edx, eax
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 8
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x32
cmp dword [eax + 0xc], 0
je 0x45b145
push 2
push ecx
lea ecx, [ebp + 8]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0x31
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b164
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x30
or eax, 0xffffffff
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b183
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2f
or eax, 0xffffffff
mov edx, dword [ebp - 0x1c]
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b19f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x2e
or eax, 0xffffffff
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b1be
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x11
or eax, 0xffffffff
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b1dd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xa
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b1fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x45b3ea
mov ecx, dword [edi]
push edi
jmp 0x45b3e5
push str.url_error
lea ecx, [ebp - 0x28]
call fcn.0041f870
push str.openUrl
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0xd
call fcn.0041f910
mov byte [ebp - 4], 0xe
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45b251
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x40], esi
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xf
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x10
cmp dword [eax + 0xc], 0
je 0x45b293
push 2
push ecx
lea ecx, [ebp + 8]
add eax, 8
push ecx
push eax
call fcn.004210a0
mov byte [ebp - 4], 0xf
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b2b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 0xe
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b2d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xd
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b2ee
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
jmp 0x45b1e7
push str.browser_error
lea ecx, [ebp - 0x28]
call fcn.0041f870
push str.openUrl
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.0041f910
mov byte [ebp - 4], 4
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x45b334
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [ebp - 0x40], esi
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov byte [ebp - 4], 6
cmp dword [edi + 0xc], 0
je 0x45b371
push 2
push eax
lea eax, [ebp + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.004210a0
mov byte [ebp - 4], 5
or eax, 0xffffffff
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b390
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 4
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b3ae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, esi
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b3cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, esi
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45b3ea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x45b409
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4