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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x464008
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
push ebx
push esi
mov eax, dword [0x47dac0]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
add eax, 0xffffffff
cmp eax, 6
ja case.default.0x40f74a
jmp dword [eax*4 + 0x4105a4]
or ebx, 0xffffffff
cmp dword [edi + 0x170], 0
je 0x40f79b
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push 0x46c7b8
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0
mov ecx, esp
mov dword [esp + 0x18], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], ebx
call fcn.00417820
mov esi, edi
call fcn.0040e530
mov ecx, dword [edi + 0x8c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x90]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x98]
push 0x46c7c0
call fcn.00435487
lea eax, [esp + 0x20]
push 0x46c83c
push eax
mov ecx, 0x481ce4
call fcn.00402120
push str.0R_vN
push eax
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x94], 1
call fcn.00403590
add esp, 0x14
mov byte [esp + 0x80], 2
mov eax, dword [eax]
mov ecx, dword [edi + 0x78]
push eax
call fcn.00435487
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
mov ecx, ebx
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f838
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x80], ebx
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebx
dec ebx
test ebx, ebx
jg 0x40f85c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x84]
push 0x46c848
call fcn.00435487
lea esi, [esp + 0x2c]
call fcn.00407ae0
push 0x46babc
push eax
lea ecx, [esp + 0x30]
mov ebx, 3
push ecx
mov dword [esp + 0x8c], ebx
call fcn.00403590
add esp, 0xc
push 0x481cd8
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x8c], 4
call fcn.004034d0
add esp, 0xc
mov byte [esp + 0x80], 5
mov eax, dword [eax]
mov ecx, dword [edi + 0x8c]
push eax
call fcn.00435487
mov byte [esp + 0x80], 4
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f8ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x80], bl
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f914
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f93f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea esi, [esp + 0x64]
call fcn.004097f0
push 0x20
push 0
push ecx
mov dword [esp + 0x8c], 6
mov ecx, esp
mov dword [esp + 0x24], esp
push str.HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall_
push ecx
mov ecx, 0x481ce4
call fcn.00402120
add esp, 8
mov ecx, esi
call fcn.00409840
test eax, eax
lea esi, [edi + 0x160]
jne 0x40f9ac
push 0x20
push esi
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.InstallLocation
call fcn.00401af0
lea ecx, [esp + 0x70]
call fcn.0040a310
mov edx, dword [esp + 0x64]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x40f9b8
push 0x481c28
mov ecx, esi
call fcn.00402c00
mov esi, dword [esi]
cmp dword [esi - 0xc], 0
jne 0x40fa38
lea esi, [esp + 0x38]
call fcn.00407ae0
push 0x46babc
push eax
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x8c], 7
call fcn.00403590
add esp, 0xc
push 0x481cd8
push eax
lea ecx, [esp + 0x38]
push ecx
mov byte [esp + 0x8c], 8
call fcn.004034d0
add esp, 0xc
mov byte [esp + 0x80], 9
mov eax, dword [eax]
mov ecx, dword [edi + 0x8c]
push eax
call fcn.00435487
lea ecx, [esp + 0x30]
call fcn.00401a40
lea ecx, [esp + 0x34]
call fcn.00401a40
mov ecx, esi
mov byte [esp + 0x80], 6
call fcn.00401a40
jmp 0x40fa44
mov ecx, dword [edi + 0x8c]
push esi
call fcn.00435487
push edi
call fcn.00414620
mov ecx, dword [edi + 0x78]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x7c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x84]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x8c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x8c]
push 0
call fcn.0043555d
mov ecx, dword [edi + 0x90]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x94]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x98]
push 5
call fcn.00435521
mov edx, dword [edi + 0x148]
cmp dword [edx - 0xc], 0
je 0x40fad5
mov ecx, dword [edi + 0x9c]
push 0x46c858
call fcn.00435487
mov ecx, dword [edi + 0x9c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x88]
push 5
call fcn.00435521
lea esi, [esp + 0x64]
call fcn.0040b440
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x46c874
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0xa
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], 0xffffffff
call fcn.00417820
mov eax, dword [edi + 0x20]
push 0
push eax
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call fcn.00435e9b
mov ecx, dword [eax + 4]
push 1
push 0xf060
push ecx
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov esi, edi
call fcn.0040e530
mov ecx, dword [edi + 0x78]
push 0x46c880
call fcn.00435487
mov ecx, dword [edi + 0xa4]
push 0x46c8d4
call fcn.00435487
mov ecx, dword [edi + 0x84]
push 0x46c8ec
call fcn.00435487
mov eax, dword [edi + 0x9c]
mov edx, dword [eax + 0x20]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xf0
push edx
call ebx
test eax, eax
lea ecx, [edi + 0x130]
setne al
push ecx
mov ecx, dword [edi + 0x8c]
mov byte [edi + 0x158], al
call fcn.0043375e
mov edx, dword [edi + 0xf0]
xor esi, esi
push esi
push esi
push 0x18b
push edx
call ebx
test eax, eax
je 0x40fc0d
push 1
push esi
lea ecx, [edi + 0xd0]
call fcn.0042f9e7
mov eax, dword [edi + 0xf0]
push 0
push 0
push 0x18b
push eax
add esi, 1
call ebx
cmp esi, eax
jne 0x40fbe6
mov ecx, dword [edi + 0x78]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x7c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xa0]
push 5
call fcn.00435521
push 5
lea ecx, [edi + 0xd0]
call fcn.00435521
mov ecx, dword [edi + 0xa4]
push 5
call fcn.00435521
call fcn.004268df
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40fc62
push 0x80004005
call fcn.00401820
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x80], 0xb
push ecx
mov ecx, dword [edi + 0x8c]
call fcn.0043375e
mov edx, dword [edi + 0x160]
cmp dword [edx - 0xc], 0
je 0x40fc9e
call fcn.00414920
mov ecx, dword [edi + 0x84]
push 5
call fcn.00435521
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg case.default.0x40f74a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x46c8fc
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0xc
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], 0xffffffff
call fcn.00417820
mov esi, edi
call fcn.0040e530
mov ecx, dword [edi + 0x84]
push 0x46c848
call fcn.00435487
mov ecx, dword [edi + 0x84]
push 0
call fcn.0043555d
mov ecx, dword [edi + 0xf0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x18b
push ecx
mov dword [esp + 0x24], 0
call esi
test eax, eax
je 0x40ffb1
lea esp, [esp]
call fcn.004268df
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40fc58
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
lea edx, [esp + 0x18]
mov dword [esp + 0x80], 0xd
mov eax, dword [esp + 0x14]
push edx
lea ecx, [edi + 0xd0]
push eax
call fcn.0042d991
xor ebx, ebx
mov dword [esp + 0x10], ebx
lea ebx, [ebx]
mov eax, dword [edi + 0x138]
test eax, eax
je 0x40fdf3
mov ecx, dword [edi + 0x13c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
je 0x40ff57
mov eax, dword [edi + 0x138]
test eax, eax
je 0x40fe22
mov ecx, dword [edi + 0x13c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x40fe27
call fcn.00448cb3
mov eax, dword [edi + 0x138]
add eax, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
setne cl
test ecx, ecx
je 0x40fc58
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40fe6e
test dx, dx
je 0x40fe6a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40fe6e
add eax, 4
add ecx, 4
test dx, dx
jne 0x40fe48
xor eax, eax
jmp 0x40fe73
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x40fefa
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push 0x46c904
call fcn.00401af0
mov byte [esp + 0x84], 0xe
mov eax, dword [edi + 0x138]
test eax, eax
je 0x40febc
mov ecx, dword [edi + 0x13c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x40fec1
call fcn.00448cb3
mov eax, dword [edi + 0x138]
add eax, dword [esp + 0x14]
push ecx
mov eax, dword [eax + 0xc]
sub eax, 0x10
mov dword [esp + 0x68], esp
mov esi, esp
push eax
call fcn.00401a80
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov byte [esp + 0x88], 0xd
call fcn.0040a8a0
add esp, 8
test eax, eax
je 0x40ff07
add ebx, 1
add dword [esp + 0x10], 0x14
jmp 0x40fdd0
mov eax, dword [edi + 0x138]
test eax, eax
je 0x40ff2e
mov ecx, dword [edi + 0x13c]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x40ff33
call fcn.00448cb3
mov edx, dword [edi + 0x138]
mov eax, dword [esp + 0x14]
lea ecx, [ebx + ebx*4]
lea esi, [edx + ecx*4]
push eax
lea ecx, [edi + 0xd0]
call fcn.0042e6fb
test eax, eax
setne cl
mov byte [esi + 0x10], cl
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ff82
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 0xf0]
push 0
push 0
push 0x18b
add esi, 1
push ecx
mov dword [esp + 0x24], esi
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, eax
jne 0x40fd80
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [edi + 0x7c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x78]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x78]
push 0x46c910
call fcn.00435487
mov edx, dword [edi + 0xa8]
mov eax, dword [edx + 0x20]
push 0x64
push 0
push 0x406
push eax
call esi
mov ecx, dword [edi + 0xa8]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xac]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xa8]
mov edx, dword [ecx + 0x20]
push 0
push 0
push 0x402
push edx
call esi
push 0
push 0
push 0
push 0
push edi
push fcn.00413fe0
call fcn.0042a6a0
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46c91c
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0xf
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], 0xffffffff
call fcn.00417820
mov esi, edi
call fcn.0040e530
mov ecx, dword [edi + 0x78]
push 0x46c928
call fcn.00435487
mov ecx, dword [edi + 0x7c]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x78]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xb0]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xb4]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xb8]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xbc]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x84]
push 5
call fcn.00435521
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46ca54
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0x10
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], 0xffffffff
call fcn.00417820
mov esi, edi
call fcn.0040e530
mov eax, dword [edi + 0xf0]
xor esi, esi
push esi
push esi
push 0x18b
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
je 0x410247
call fcn.004268df
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40fc58
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x14]
push ecx
lea ebx, [edi + 0xd0]
push esi
mov ecx, ebx
mov dword [esp + 0x88], 0x11
call fcn.0042d991
lea edx, [edi + 0x164]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.00404140
add esp, 8
test al, al
je 0x4101d0
push esi
mov ecx, ebx
call fcn.0042e6fb
test eax, eax
setne cl
mov byte [edi + 0x15e], cl
lea edx, [edi + 0x168]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.00404140
add esp, 8
test al, al
je 0x4101fb
push esi
mov ecx, ebx
call fcn.0042e6fb
test eax, eax
setne cl
mov byte [edi + 0x15d], cl
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x410226
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0xf0]
push 0
push 0
push 0x18b
push ecx
add esi, 1
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, eax
jne 0x410163
mov ecx, dword [edi + 0x80]
push 5
call fcn.00435521
lea edx, [esp + 0x40]
push 0x46baac
push edx
mov ecx, 0x481ce4
call fcn.00402120
push 0x46ca5c
push eax
lea eax, [esp + 0x4c]
mov ebx, 0x12
push eax
mov dword [esp + 0x94], ebx
call fcn.00403590
add esp, 0x14
mov byte [esp + 0x80], 0x13
mov eax, dword [eax]
mov ecx, dword [edi + 0xc0]
push eax
call fcn.00435487
mov byte [esp + 0x80], bl
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4102c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4102ef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0xc0]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xc4]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xc8]
jmp 0x4100d4
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46ca94
call fcn.00401af0
push ecx
mov dword [esp + 0x88], 0x14
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x46c598
call fcn.00401af0
push 0x481cf4
mov dword [esp + 0x8c], 0xffffffff
call fcn.00417820
mov esi, edi
call fcn.0040e530
lea ecx, [esp + 0x48]
push 0x46cabc
push ecx
mov ecx, 0x481ce4
call fcn.00402120
push 0x46ca9c
push eax
lea edx, [esp + 0x54]
mov ebx, 0x15
push edx
mov dword [esp + 0x94], ebx
call fcn.00403590
add esp, 0x14
mov byte [esp + 0x80], 0x16
mov eax, dword [eax]
mov ecx, dword [edi + 0x78]
push eax
call fcn.00435487
mov byte [esp + 0x80], bl
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4103ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4103f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x7c]
push 5
call fcn.00435521
lea ecx, [esp + 0x58]
push 0x46cabc
push ecx
mov ecx, 0x481ce4
call fcn.00402120
push 0x46cb60
push eax
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x94], 0x17
call fcn.00403590
add esp, 0x14
push 0x481ce4
push eax
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x8c], 0x18
call fcn.004034d0
add esp, 0xc
push 0x46cad0
push eax
lea ecx, [esp + 0x54]
mov bl, 0x19
push ecx
mov byte [esp + 0x8c], bl
call fcn.00403590
add esp, 0xc
mov byte [esp + 0x80], 0x1a
mov eax, dword [eax]
mov ecx, dword [edi + 0x78]
push eax
call fcn.00435487
mov byte [esp + 0x80], bl
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4104a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x80], 0x18
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4104ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x80], 0x17
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4104f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41051d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [edi + 0x78]
push 5
call fcn.00435521
mov ecx, dword [edi + 0xcc]
push 5
call fcn.00435521
mov ecx, dword [edi + 0x84]
push 0x46cb88
call fcn.00435487
jmp 0x4100db
mov eax, dword [edi + 0xcc]
mov ecx, dword [eax + 0x20]
push 0
push 0
push 0xf0
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
setne dl
push 0
mov ecx, edi
mov byte [edi + 0x15c], dl
call fcn.00435521
mov ecx, edi
call fcn.00411a30
mov eax, dword [edi + 0x20]
push 0
push 0
push 0x12
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4