Function at 0x4922c0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf902
mov eax, dword fs:[0]
push eax
sub esp, 0x170
mov eax, dword [0x50ac94]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
mov dword [ebp - 0x158], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x160], ecx
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x164], eax
mov dword [ebp - 4], 0
call fcn.0049ff8a
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x49233c
push 0x80004005
call fcn.00421000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x140], eax
mov ecx, str.RegistryMACHINESOFTWAREClasses_
mov byte [ebp - 4], 1
test ecx, 0xffff0000
jne 0x492448
mov edx, ecx
movzx esi, dx
push esi
call fcn.004a7eac
mov edi, eax
test edi, edi
je 0x492466
mov eax, esi
shr eax, 4
inc eax
movzx ecx, ax
push 6
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x492466
push esi
push eax
push edi
call fcn.004216d6
mov edi, eax
add esp, 0xc
test edi, edi
je 0x492466
mov eax, dword [ebp - 0x140]
movzx esi, word [edi]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, esi
or eax, ecx
jge 0x4923ce
push esi
lea ecx, [ebp - 0x140]
call fcn.004214f5
movzx eax, word [edi]
add edi, 2
cmp eax, 0xffffffff
jne 0x4923e3
push edi
call fcn.004ae67a
add esp, 4
inc eax
lea edx, [eax + eax]
mov eax, dword [ebp - 0x140]
push edx
lea ecx, [esi + esi]
push edi
push ecx
push eax
mov dword [ebp - 0x134], ecx
call fcn.004ae100
add esp, 0x10
cmp eax, 0x50
ja case.0x49240d.1
movzx ecx, byte [eax + 0x492fb0]
jmp dword [ecx*4 + 0x492fa0]
call fcn.004a04f2
call fcn.004a052a
test esi, esi
jl 0x49243e
mov eax, dword [ebp - 0x140]
cmp esi, dword [eax - 8]
jg 0x49243e
mov ecx, dword [ebp - 0x134]
xor edx, edx
mov dword [eax - 0xc], esi
mov word [ecx + eax], dx
jmp 0x49246c
push 0x80070057
call fcn.00421000
push str.RegistryMACHINESOFTWAREClasses_
call fcn.004ae67a
add esp, 4
push eax
push str.RegistryMACHINESOFTWAREClasses_
lea ecx, [ebp - 0x140]
call fcn.004241cf
mov eax, dword [ebp - 0x140]
mov edi, dword [ebp - 0x158]
mov byte [ebp - 4], 2
mov edx, 0x6b6e
mov dword [ebp - 0x168], 0
cmp word [edi + ebx + 4], dx
je 0x492495
mov byte [ebp - 4], 0
jmp 0x492f06
call fcn.0049ff8a
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4924af
push 0x80004005
call fcn.00421000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x144], eax
mov byte [ebp - 4], 3
test byte [edi + ebx + 6], 0x20
je 0x492520
movzx esi, word [edi + ebx + 0x4c]
call fcn.0049ff8a
push eax
push esi
lea ecx, [edi + ebx + 0x50]
push ecx
lea ecx, [ebp - 0x134]
call fcn.004934d0
mov byte [ebp - 4], 4
mov esi, dword [ebp - 0x134]
push esi
lea ecx, [ebp - 0x144]
call fcn.0047ec60
lea eax, [esi - 0x10]
mov byte [ebp - 4], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4925d0
mov ecx, dword [eax]
push eax
jmp 0x4925c9
mov edi, dword [ebp - 0x158]
movzx esi, word [edi + ebx + 0x4c]
shr esi, 1
call fcn.0049ff8a
push eax
push esi
lea ecx, [edi + ebx + 0x50]
push ecx
lea ecx, [ebp - 0x134]
call fcn.004240e9
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x134]
mov edi, dword [ebp - 0x144]
lea esi, [eax - 0x10]
add edi, 0xfffffff0
cmp esi, edi
je 0x4925b3
cmp dword [edi + 0xc], 0
jl 0x4925a3
mov edx, dword [esi]
cmp edx, dword [edi]
jne 0x4925a3
push esi
call fcn.00424240
mov dword [ebp - 0x13c], eax
add esp, 4
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x492592
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0x13c]
add ecx, 0x10
mov dword [ebp - 0x144], ecx
jmp 0x4925b3
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x144]
call fcn.004241cf
mov byte [ebp - 4], 3
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x4925d0
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
cmp dword [ebp + 0x18], 0
jle 0x4926c8
push ecx
mov ecx, esp
mov dword [ebp - 0x14c], esp
push 0x4ddc20
call fcn.004235bf
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x144]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x16c], esp
mov esi, esp
push eax
call fcn.00424240
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 7
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x15c], esp
mov esi, esp
push eax
call fcn.00424240
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea edi, [ebp - 0x13c]
mov byte [ebp - 4], 3
call fcn.00468250
add esp, 0xc
mov byte [ebp - 4], 8
mov ecx, dword [eax]
mov esi, dword [ebp + 8]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4926a2
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x492695
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x492695
push eax
call fcn.00424240
mov dword [ebp - 0x134], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x492687
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [ebp - 0x134]
add ecx, 0x10
mov dword [ebp + 8], ecx
jmp 0x4926a2
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp + 8]
call fcn.004241cf
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x13c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4926c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x14]
cmp eax, 2
jne 0x492880
mov ecx, dword [ebp - 0x158]
mov edx, dword [ecx + ebx + 0x30]
lea eax, [ecx + ebx + 0x30]
mov dword [ebp - 0x134], eax
lea esi, [edx + ebx + 4]
mov eax, 0x6b73
cmp word [esi], ax
jne 0x492d75
push 0x110
lea ecx, [ebp - 0x12c]
push 0
push ecx
mov dword [ebp - 0x130], 0x114
call fcn.004aefb0
add esp, 0xc
lea edx, [ebp - 0x130]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esi + 0x10], 0
je 0x492807
movzx eax, word [esi + 0x16]
lea edi, [esi + 0x14]
test al, 4
je 0x492807
test eax, 0x8000
je 0x492807
mov ebx, dword [ebp - 0x144]
push ecx
mov ecx, dword [ebp + 8]
mov eax, esp
mov dword [ebp - 0x14c], esp
push ecx
push ebx
push str._RegDatFileWalker:_fixing_sec__DACL__in__s___s_
push eax
call fcn.00468700
add esp, 0x10
call fcn.00492250
mov eax, dword [edi + 0x10]
add eax, edi
mov edx, 0x1c
add esp, 4
cmp dx, word [eax + 2]
ja 0x4927e6
mov ecx, edx
mov word [eax + 2], cx
mov edx, 1
mov word [eax + 4], dx
mov byte [ebp - 0x1c], dl
mov byte [ebp - 0x1b], dl
mov byte [ebp - 0x15], dl
mov edx, 0x14
mov word [eax + 0xa], dx
xor ecx, ecx
mov byte [eax + 9], cl
mov byte [eax + 8], cl
mov dword [eax + 0xc], 0xf003f
mov byte [ebp - 0x1a], 0
mov byte [ebp - 0x19], 0
mov edx, dword [ebp - 0x1c]
mov dword [eax + 0x10], edx
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x17], 0
mov byte [ebp - 0x16], 0
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], ecx
mov eax, dword [ebp - 0x160]
mov dword [eax], 1
jmp 0x49280d
push ecx
mov ecx, esp
mov dword [ebp - 0x14c], esp
push str._RegDatFileWalker:_Not_enough_room_to_set_DACL
push ecx
call fcn.00468700
add esp, 8
call fcn.00492250
add esp, 4
jmp 0x49280d
mov ebx, dword [ebp - 0x144]
mov edi, dword [ebp - 0x134]
mov eax, dword [edi]
cmp dword [esi + 4], eax
jne 0x49281f
cmp dword [esi + 8], eax
je 0x492859
mov eax, dword [ebp + 8]
push ecx
mov edx, esp
mov dword [ebp - 0x14c], esp
push eax
push ebx
push str._RegDatFileWalker:_fixing_sec__unlink_SD__in__s___s_
push edx
call fcn.00468700
add esp, 0x10
call fcn.00492250
mov ecx, dword [edi]
mov eax, dword [ebp - 0x160]
mov dword [esi + 4], ecx
mov edx, dword [edi]
mov dword [esi + 8], edx
add esp, 4
mov dword [eax], 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14c], esp
push str.RegDatFileWalker:_all_good
call fcn.004235bf
call fcn.00492250
add esp, 4
mov byte [ebp - 4], 2
lea eax, [ebx - 0x10]
jmp 0x492ee3
cmp eax, 1
jne 0x4928b4
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x170]
push 0
lea ecx, [ebp - 0x168]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x492d75
mov ecx, dword [ebp - 0x158]
xor esi, esi
lea eax, [ecx + ebx + 0x28]
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x14c], eax
cmp dword [eax], esi
jbe 0x492d64
mov eax, dword [ebp - 0x164]
test eax, eax
je 0x4928ef
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x492d5e
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x158]
mov ecx, dword [edx + eax + 0x2c]
lea edx, [ecx + esi*4 + 4]
mov ecx, dword [edx + eax]
lea edi, [ecx + eax + 4]
mov edx, 0x6b76
cmp word [edi], dx
jne 0x492d43
test dword [edi + 4], 0x80000000
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0x150]
lea eax, [edi + 8]
lea ecx, [edx + ecx + 4]
mov dword [ebp - 0x148], ecx
je 0x49293d
mov dword [ebp - 0x148], eax
call fcn.0049ff8a
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x492332
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x154], eax
mov byte [ebp - 4], 9
test byte [edi + 0x10], 1
movzx esi, word [edi + 2]
je 0x4929bf
call fcn.0049ff8a
push eax
push esi
lea ecx, [edi + 0x14]
push ecx
lea ecx, [ebp - 0x17c]
call fcn.004934d0
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x17c]
push esi
lea ecx, [ebp - 0x154]
call fcn.0047ec60
lea eax, [esi - 0x10]
mov byte [ebp - 4], 9
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x492a63
mov ecx, dword [eax]
push eax
jmp 0x492a5c
shr esi, 1
call fcn.0049ff8a
push eax
push esi
lea ecx, [edi + 0x14]
push ecx
lea ecx, [ebp - 0x178]
call fcn.004240e9
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x178]
mov ebx, dword [ebp - 0x154]
lea esi, [eax - 0x10]
add ebx, 0xfffffff0
cmp esi, ebx
je 0x492a46
cmp dword [ebx + 0xc], 0
jl 0x492a36
mov edx, dword [esi]
cmp edx, dword [ebx]
jne 0x492a36
push esi
call fcn.00424240
mov dword [ebp - 0x138], eax
add esp, 4
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x492a25
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov ecx, dword [ebp - 0x138]
add ecx, 0x10
mov dword [ebp - 0x154], ecx
jmp 0x492a46
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x154]
call fcn.004241cf
mov byte [ebp - 4], 9
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x492a63
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov esi, dword [edi + 4]
mov ebx, dword [ebp - 0x148]
mov ecx, dword [edi + 0xc]
and esi, 0xfffffff
mov eax, ebx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x138], 0
cmp esi, 0x3fd8
jbe 0x492b4e
mov edx, 0x6264
cmp word [ebx], dx
jne 0x492b4e
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x150]
lea edx, [eax + ecx + 4]
push esi
mov dword [ebp - 0x174], edx
call fcn.004aeee2
mov dword [ebp - 0x138], eax
xor eax, eax
add esp, 4
xor edi, edi
cmp ax, word [ebx + 2]
jae 0x492b48
movzx eax, di
mov ecx, eax
imul ecx, ecx, 0x3fd8
cmp ecx, esi
jae 0x492b48
mov edx, dword [ebp - 0x174]
mov eax, dword [edx + eax*4]
mov edx, dword [ebp - 0x150]
lea eax, [eax + edx + 4]
lea edx, [ecx + 0x3fd8]
mov dword [ebp - 0x15c], eax
cmp edx, esi
jae 0x492b0a
mov eax, 0x3fd8
jmp 0x492b28
mov eax, 0xa0643f
mul esi
mov eax, esi
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0xd
mov edx, eax
imul edx, edx, 0x3fd8
mov eax, esi
sub eax, edx
mov edx, dword [ebp - 0x138]
push eax
mov eax, dword [ebp - 0x15c]
push eax
add ecx, edx
push ecx
call fcn.004ae900
inc edi
add esp, 0xc
cmp di, word [ebx + 2]
jb 0x492ad1
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x154]
cmp ecx, 1
jne 0x492bd4
push esi
mov esi, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x168]
push esi
push 0
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x492ba3
mov edx, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x15c], esp
push edi
push edx
push esi
push str.Preparing_RegValue__d_:__s:__s
push ecx
call fcn.00468700
add esp, 0x14
call fcn.00492250
add esp, 4
jmp 0x492d0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ebp - 0x15c], esp
push eax
push edi
push edx
push esi
push str._Failed_setting_RegValue__d_:__s:__s__LE_d
push ecx
call fcn.00468700
add esp, 0x18
call fcn.00492250
add esp, 4
jmp 0x492d0b
test ecx, ecx
jne 0x492d0b
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x148]
push edi
push eax
push ecx
lea edx, [ebp - 0x13c]
push str.__.2d___ws:__ws
push edx
call fcn.00468700
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x16c]
push 0x4de118
push ecx
mov byte [ebp - 4], 0xd
call fcn.00423863
add esp, 0x20
mov byte [ebp - 4], 0xe
mov esi, dword [eax]
call fcn.0049ff8a
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x492332
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x148], eax
mov byte [ebp - 4], 0xf
test esi, esi
je 0x492c70
test esi, 0xffff0000
jne 0x492c70
movzx esi, si
push esi
call fcn.004a7eac
test eax, eax
je 0x492c7c
push esi
push eax
lea ecx, [ebp - 0x148]
call fcn.004250c5
jmp 0x492c7c
push esi
lea ecx, [ebp - 0x148]
call fcn.00424f93
mov byte [ebp - 4], 0xe
mov esi, dword [ebp - 0x148]
push esi
call fcn.004b3c34
lea eax, [esi - 0x10]
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492cab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x16c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492cd1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x13c]
push ecx
push str.RegDump
call fcn.00465cd0
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x13c]
add eax, 0xfffffff0
add esp, 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x492d0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp dword [ebp - 0x138], 0
je 0x492d23
mov ecx, dword [ebp - 0x138]
push ecx
call fcn.004aedc5
add esp, 4
lea eax, [edi - 0x10]
mov byte [ebp - 4], 3
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x492d43
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0x14c]
inc esi
mov dword [ebp - 0x134], esi
cmp esi, dword [ecx]
jb 0x4928d4
mov ebx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x168]
test eax, eax
je 0x492d75
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x158]
cmp dword [eax + ebx + 0x18], 0
jbe 0x492ed6
mov edx, dword [eax + ebx + 0x20]
lea eax, [edx + ebx + 4]
xor ecx, ecx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], 0
cmp cx, word [eax + 2]
jae 0x492ed6
lea ebx, [ebx]
mov ecx, dword [ebp - 0x164]
test ecx, ecx
je 0x492dd1
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x492ed6
mov eax, dword [ebp - 0x13c]
movzx ecx, word [eax]
mov edx, 0x666c
cmp cx, dx
je 0x492e0c
mov edx, 0x686c
cmp cx, dx
je 0x492e0c
mov edx, 0x6972
cmp cx, dx
je 0x492e00
mov edx, 0x696c
cmp cx, dx
jne 0x492f64
mov ecx, dword [ebp - 0x138]
mov eax, dword [eax + ecx*4 + 4]
jmp 0x492e16
mov edx, dword [ebp - 0x138]
mov eax, dword [eax + edx*8 + 4]
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x170]
mov esi, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x160]
push edx
mov edx, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
inc edx
push edx
mov edx, dword [ebp - 0x150]
push ecx
push eax
push edx
push ecx
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
mov dword [ebp - 0x14c], esp
mov ebx, esp
call edx
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x492e6f
cmp eax, dword [esi]
jne 0x492e6f
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x492eaa
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x492f99
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
add esi, 0x10
lea edx, [eax + eax + 2]
push esi
push edx
lea eax, [edi + 0x10]
push eax
call fcn.004ae100
add esp, 0x10
add edi, 0x10
mov dword [ebx], edi
call fcn.004922c0
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
movzx edx, word [eax + 2]
inc ecx
add esp, 0x20
cmp ecx, edx
mov dword [ebp - 0x138], ecx
jl 0x492db0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x144]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492efc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x140]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492f22
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x492f48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004add11
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x13c]
sub ecx, dword [ebp - 0x150]
push ecx
mov edx, esp
mov dword [ebp - 0x14c], esp
push ecx
push eax
push str._Invalid_block:__s__offset_u
push edx
call fcn.00468700
add esp, 0x10
call fcn.00492250
add esp, 4
jmp 0x492ed6
call fcn.00421560
mov edi, edi
push ds
and al, 73
add byte [esp], dl
dec ecx
add byte [ecx], bl
and al, 0x49
add byte [ecx], bl
and al, 0x49
add byte [eax], al
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ecx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [edx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [edx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [eax]
int3