Function at 0x411c90
Capabilities:
Check if file exists
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d912d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
push esi
mov esi, ecx
mov ecx, 0x5101ed
call fcn.004b532d
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
sub eax, 0x10
push eax
call fcn.004043f0
add esp, 4
lea esi, [eax + 0x10]
mov dword [ebp - 0x30], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 1
push eax
push 0xf013f
push 0
push str.SOFTWAREClientsStartMenuInternet
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x18], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
or ebx, 0xffffffff
test eax, eax
jne 0x412821
push edi
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x30]
push 0x4e22bc
push eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x4c], edi
push eax
mov dword [ebp - 0x48], 0x100
call fcn.00403e00
push 0x4e237c
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 2
push eax
call fcn.00403e00
add esp, 0x18
mov edx, dword [ebp - 0x34]
mov eax, ebx
mov byte [ebp - 4], 4
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411d72
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4127f7
push 0x4e2400
lea ecx, [ebp - 0x14]
call fcn.00403700
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push dword [ebp - 0x14]
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x411dd8
test edi, edi
je 0x411dcb
push edi
call ebx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push 0x4e239c
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x411e18
test edi, edi
je 0x411e0b
push edi
call ebx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0
push 0x4e2458
lea ecx, [ebp - 0x38]
call fcn.00403700
push str._is_an_awsome_internet_browser
push eax
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 6
push eax
call fcn.00403e00
add esp, 0xc
mov edx, dword [eax]
test edx, edx
je 0x411e79
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x20], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x411e50
sub ecx, dword [ebp - 0x20]
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push edx
push 1
push 0
push str.ApplicationDescription
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [ebp - 0x18]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411e94
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
or eax, 0xffffffff
mov byte [ebp - 4], 5
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x411eb3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x4e24a0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00403e00
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 7
test eax, eax
je 0x411f09
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x38], ecx
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x411ee0
sub edx, dword [ebp - 0x38]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.ApplicationIcon
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x411f49
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x38], ecx
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x411f20
sub edx, dword [ebp - 0x38]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.ApplicationName
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.FileAssociations
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x411f82
test edi, edi
je 0x411f7c
push edi
call ebx
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x4c], edi
push 0x1a
push 0x4e250c
push 1
push 0
push str..htm
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e2534
push 1
push 0
push str..html
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e255c
push 1
push 0
push str..shtml
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e2588
push 1
push 0
push str..svg
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e25b0
push 1
push 0
push str..webp
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e25d8
push 1
push 0
push str..xht
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e2600
push 1
push 0
push str..xhtml
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x41202f
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
push 0x4e2648
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x48], 0
call fcn.00403700
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 8
push 0x4e2660
push eax
call fcn.00403ed0
push 0x4e262c
push eax
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 9
push eax
call fcn.00403e00
add esp, 0x18
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
push ecx
push 0xf013f
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x4120ae
mov dword [ebp - 0x18], eax
test edi, edi
je 0x4120a1
push edi
call ebx
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x100
mov edx, dword [ebp - 0x38]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4120c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x3c]
or eax, 0xffffffff
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4120e8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x40]
or eax, 0xffffffff
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412107
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x18], 0
jne 0x4127b9
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.Startmenu
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x41214a
test edi, edi
je 0x412144
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x412189
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x412160
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.StartMenuInternet
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x412195
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
push 0x4e26fc
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x48], 0
call fcn.00403700
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0xa
push 0x4e2750
push eax
call fcn.00403ed0
push str.Capabilities
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xb
push eax
call fcn.00403e00
add esp, 0x18
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
push ecx
push 0xf013f
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, eax
mov dword [ebp - 0x18], ecx
test ecx, ecx
jne 0x412214
mov dword [ebp - 0x18], eax
test edi, edi
je 0x412207
push edi
call ebx
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x100
mov edx, dword [ebp - 0x40]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41222f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x3c]
or eax, 0xffffffff
mov byte [ebp - 4], 0xa
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41224e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
or eax, 0xffffffff
mov byte [ebp - 4], 7
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41226d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x18], 0
jne 0x4127b9
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.URLAssociations
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4122b0
test edi, edi
je 0x4122aa
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
push 0x1a
push 0x4e2734
push 1
push 0
push 0x4e2798
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e27a0
push 1
push 0
push str.http
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x1a
push 0x4e27c8
push 1
push 0
push str.https
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x412301
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
push 0x4e27f0
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x48], 0
call fcn.00403700
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xc
push 0x4e2808
push eax
call fcn.00403ed0
add esp, 0xc
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
push ecx
push 0xf013f
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x41236b
mov dword [ebp - 0x18], eax
test edi, edi
je 0x41235e
push edi
call ebx
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x100
lea ecx, [ebp - 0x40]
call fcn.00403a30
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.00403a30
cmp dword [ebp - 0x18], 0
jne 0x4127b9
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.DefaultIcon
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4123c2
test edi, edi
je 0x4123bc
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4123fa
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4123d1
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push 0x4e2868
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x412406
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
push 0x4e286c
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x48], 0
call fcn.00403700
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xd
push 0x4e28a0
push eax
call fcn.00403ed0
add esp, 0xc
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
push ecx
push 0xf013f
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x412470
mov dword [ebp - 0x18], eax
test edi, edi
je 0x412463
push edi
call ebx
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x100
lea ecx, [ebp - 0x40]
call fcn.00403a30
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.00403a30
cmp dword [ebp - 0x18], 0
jne 0x4127b9
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.InstallInfo
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4124ce
test edi, edi
je 0x4124c1
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x3c]
push 0x4e28e8
push eax
call fcn.00403ed0
push 0x4e289c
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xe
push eax
call fcn.00403e00
add esp, 0x18
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xf
call fcn.00403b80
lea ecx, [ebp - 0x40]
call fcn.00403a30
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 7
call fcn.00403a30
push 0x4e28ec
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00403e00
add esp, 0xc
push 1
push str.IconsVisible
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x10
call fcn.0040f360
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x412579
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
nop
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x412550
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.HideIconsCommand
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.___make_default_browser
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00403e00
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x11
test eax, eax
je 0x4125ca
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4125a1
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.ReinstallCommand
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push str.___show_icons
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00403e00
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x41261b
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x4125f2
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.ShowIconsCommand
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x412627
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
push 0x4e29dc
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x48], 0
call fcn.00403700
push eax
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0x13
push str.SOFTWAREClientsStartMenuInternet_
push eax
call fcn.00403ed0
add esp, 0xc
mov dword [ebp - 0x20], 0
lea ecx, [ebp - 0x20]
push ecx
push 0xf013f
push 0
push dword [eax]
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x412691
mov dword [ebp - 0x18], eax
test edi, edi
je 0x412684
push edi
call ebx
mov dword [ebp - 0x18], eax
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x100
lea ecx, [ebp - 0x40]
call fcn.00403a30
lea ecx, [ebp - 0x3c]
call fcn.00403a30
cmp dword [ebp - 0x18], 0
jne 0x4127a1
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.shell
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x4126e4
test edi, edi
je 0x4126de
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
lea eax, [ebp - 0x40]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push 0x4e2a48
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x41271d
test edi, edi
je 0x412717
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push 0x2001f
push 0
push 0
push 0
push str.command
push edi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x412756
test edi, edi
je 0x412750
push edi
call ebx
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x4c], edi
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x41278e
mov edx, eax
lea ecx, [edx + 2]
mov dword [ebp - 0x40], ecx
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x412765
sub edx, dword [ebp - 0x40]
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push 0x4e2a64
push edi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test edi, edi
je 0x41279a
push edi
call ebx
xor edi, edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0
lea ecx, [ebp - 0x24]
call fcn.00403a30
lea ecx, [ebp - 0x28]
call fcn.00403a30
lea ecx, [ebp - 0x2c]
call fcn.00403a30
mov edx, dword [ebp - 0x1c]
or eax, 0xffffffff
mov byte [ebp - 4], 5
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4127d8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
or eax, 0xffffffff
mov byte [ebp - 4], 4
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4127f7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x10]
or eax, 0xffffffff
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x412816
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test edi, edi
je 0x41281d
push edi
call ebx
or ebx, 0xffffffff
pop edi
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x41283d
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret