Function at 0x4b1be8
Capabilities:
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xf
push 0
push 0
dec ecx
jne 0x4b1bf0
push ebx
push esi
push edi
mov esi, dword [0x4c4190]
xor eax, eax
push ebp
push 0x4b2c03
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x4b2c1c
call fcn.004b3ba4
mov eax, dword [0x4c42f8]
mov eax, dword [eax]
call fcn.0045e64c
push 1
push 0
lea eax, [ebp - 0x1c]
call fcn.004a2c24
mov ecx, dword [ebp - 0x1c]
mov dl, 1
mov eax, dword [0x4a5104]
call fcn.004a5208
mov eax, dword [0x4c40b0]
cmp byte [eax], 0
jne 0x4b1c97
mov eax, dword [0x4c4104]
cmp byte [eax], 0
jne 0x4b1c97
mov eax, dword [esi]
mov eax, dword [eax + 0x350]
cmp byte [eax + 0x57], 0
je 0x4b1c75
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b1c9b
mov eax, dword [esi]
mov eax, dword [eax + 0x348]
cmp byte [eax + 0x57], 0
je 0x4b1c97
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b1c9b
xor eax, eax
jmp 0x4b1c9d
mov al, 1
mov edx, dword [0x4c43f0]
mov byte [edx], al
mov eax, dword [0x4c43f0]
cmp byte [eax], 0
je 0x4b1cb7
mov eax, dword [0x4c3f54]
mov byte [eax], 1
xor edx, edx
push ebp
push 0x4b2b12
push dword fs:[edx]
mov dword fs:[edx], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, 0x4b2c3c
call fcn.004b3ba4
lea eax, [ebp - 0xc]
push eax
push 2
mov eax, dword [0x4c44a4]
mov eax, dword [eax]
call eax
mov eax, 0x4b2c68
call fcn.004b3ba4
mov eax, 0x7fff
mov edx, dword [0x4c40a8]
cmp dword [edx], 5
jl 0x4b1d02
or eax, 0x2000000
push 0x4b2c80
push eax
push 0x4af29c
mov eax, dword [0x4c4200]
mov eax, dword [eax]
call eax
call fcn.004b0e90
test eax, eax
je 0x4b1d2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
call fcn.004ae3c0
test al, al
jne 0x4b1d6f
mov eax, 0x4b2ca0
call fcn.004b3ba4
mov eax, dword [0x4c41a4]
mov byte [eax], 2
cmp dword [esi], 0
je 0x4b1d62
push 0
push 0
push 0xd30
mov eax, dword [esi]
call fcn.0046bf94
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
call fcn.004aea20
test al, al
jne 0x4b1db2
mov eax, 0x4b2ccc
call fcn.004b3ba4
mov eax, dword [0x4c41a4]
mov byte [eax], 2
cmp dword [esi], 0
je 0x4b1da5
push 0
push 0
push 0xd30
mov eax, dword [esi]
call fcn.0046bf94
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
mov eax, 0x4b2cf4
call fcn.004b3ba4
mov eax, dword [0x4c4438]
cmp byte [eax], 0
je 0x4b1dfb
call fcn.004b357c
mov eax, dword [0x4c41a4]
mov byte [eax], 3
cmp dword [esi], 0
je 0x4b1dee
push 0
push 0
push 0xd30
mov eax, dword [esi]
call fcn.0046bf94
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
mov ecx, dword [0x4c4284]
mov ecx, dword [ecx]
lea eax, [ebp - 0x24]
mov edx, 0x4b2d38
call fcn.0040577c
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 0x20]
call fcn.00404ff0
mov edx, dword [ebp - 0x20]
mov ecx, 0x80000002
mov eax, 0x4b2da8
call fcn.004a25b4
test al, al
je 0x4b1e45
mov eax, dword [0x4c408c]
mov edx, dword [0x4c4284]
mov edx, dword [edx]
call fcn.004054ec
jmp 0x4b1e8d
mov ecx, dword [0x4c43ac]
mov ecx, dword [ecx]
lea eax, [ebp - 0x2c]
mov edx, 0x4b2d38
call fcn.0040577c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
call fcn.00404ff0
mov edx, dword [ebp - 0x28]
mov ecx, 0x80000002
mov eax, 0x4b2da8
call fcn.004a25b4
test al, al
je 0x4b1e8d
mov eax, dword [0x4c408c]
mov edx, dword [0x4c43ac]
mov edx, dword [edx]
call fcn.004054ec
mov ecx, dword [0x4c408c]
mov ecx, dword [ecx]
lea eax, [ebp - 0x34]
mov edx, 0x4b2dc8
call fcn.0040577c
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
call fcn.00404ff0
mov eax, dword [ebp - 0x30]
call fcn.004b3ba4
push 0x4b2dfc
mov eax, dword [0x4c4280]
push dword [eax]
push 0x4b2e1c
lea eax, [ebp - 4]
mov edx, 3
call fcn.004057e4
mov eax, dword [0x4c3f54]
cmp byte [eax], 0
jne 0x4b1eff
mov eax, dword [esi]
mov eax, dword [eax + 0x368]
cmp byte [eax + 0x57], 0
je 0x4b1eff
mov eax, dword [esi]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b1f09
mov eax, dword [0x4c4254]
cmp byte [eax], 0
je 0x4b1f16
lea eax, [ebp - 4]
mov edx, 0x4b2e24
call fcn.0040571c
mov eax, dword [0x4c4000]
cmp byte [eax], 0
je 0x4b1f43
mov eax, dword [0x4c408c]
mov eax, dword [eax]
mov edx, dword [0x4c4284]
mov edx, dword [edx]
call fcn.0040582c
jne 0x4b1f43
lea eax, [ebp - 4]
mov edx, 0x4b2e4c
call fcn.0040571c
call fcn.004b4c40
test al, al
jne 0x4b1f97
call fcn.004b4c4c
test al, al
jne 0x4b1f97
push dword [ebp - 4]
push 0x4b2e78
mov eax, dword [0x4c4280]
push dword [eax]
push 0x4b2eec
lea eax, [ebp - 4]
mov edx, 4
call fcn.004057e4
push dword [ebp - 4]
push 0x4b2f04
mov eax, dword [0x4c4280]
push dword [eax]
push 0x4b2f34
lea eax, [ebp - 4]
mov edx, 4
call fcn.004057e4
lea eax, [ebp - 0x10]
call fcn.004054b0
lea eax, [ebp - 0x14]
call fcn.004054b0
lea eax, [ebp - 0x18]
call fcn.004054b0
mov eax, dword [0x4c4000]
cmp byte [eax], 0
je 0x4b2278
mov eax, dword [0x4c408c]
mov eax, dword [eax]
mov edx, dword [0x4c4284]
mov edx, dword [edx]
call fcn.0040582c
jne 0x4b2278
mov ecx, dword [0x4c4204]
mov ecx, dword [ecx]
lea eax, [ebp - 0x14]
mov edx, 0x4b2f50
call fcn.0040577c
mov eax, dword [0x4c44f8]
cmp byte [eax], 1
je 0x4b2000
mov eax, dword [0x4c44f8]
cmp byte [eax], 2
jne 0x4b202b
mov eax, dword [0x4c40d0]
cmp byte [eax], 0
je 0x4b202b
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c42c8]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b20b9
mov eax, dword [0x4c3f64]
cmp byte [eax], 0
jne 0x4b20b9
mov eax, dword [esi]
mov eax, dword [eax + 0x358]
cmp byte [eax + 0x57], 0
je 0x4b20b9
mov eax, dword [esi]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b209a
mov eax, dword [0x4c40d0]
cmp byte [eax], 0
je 0x4b2083
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c42c8]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b20b9
mov ecx, dword [0x4c42c8]
mov ecx, dword [ecx]
lea eax, [ebp - 0x10]
mov edx, 0x4b2f74
call fcn.0040577c
jmp 0x4b20b9
mov eax, dword [0x4c40d0]
cmp byte [eax], 0
je 0x4b20b9
mov ecx, dword [0x4c42c8]
mov ecx, dword [ecx]
lea eax, [ebp - 0x18]
mov edx, 0x4b2f90
call fcn.0040577c
mov eax, dword [0x4c44f8]
cmp byte [eax], 1
je 0x4b20cd
mov eax, dword [0x4c44f8]
cmp byte [eax], 2
jne 0x4b20f8
mov eax, dword [0x4c40b0]
cmp byte [eax], 0
je 0x4b20f8
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c4290]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b218f
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4b218f
mov eax, dword [esi]
mov eax, dword [eax + 0x350]
cmp byte [eax + 0x57], 0
je 0x4b218f
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b218f
mov eax, dword [0x4c40b0]
cmp byte [eax], 0
je 0x4b2150
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c4290]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b218f
mov eax, dword [ebp - 0x10]
xor edx, edx
call fcn.0040582c
jbe 0x4b217a
push dword [ebp - 0x10]
push 0x4b2f6c
mov eax, dword [0x4c4290]
push dword [eax]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004057e4
jmp 0x4b218f
mov ecx, dword [0x4c4290]
mov ecx, dword [ecx]
lea eax, [ebp - 0x10]
mov edx, 0x4b2f74
call fcn.0040577c
mov eax, dword [0x4c44f8]
cmp byte [eax], 1
je 0x4b21a3
mov eax, dword [0x4c44f8]
cmp byte [eax], 2
jne 0x4b21ce
mov eax, dword [0x4c4104]
cmp byte [eax], 0
je 0x4b21ce
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c42f0]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b2365
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4b2365
mov eax, dword [esi]
mov eax, dword [eax + 0x348]
cmp byte [eax + 0x57], 0
je 0x4b2365
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b2365
mov eax, dword [0x4c4104]
cmp byte [eax], 0
je 0x4b2231
push dword [ebp - 0x14]
push 0x4b2f6c
mov eax, dword [0x4c42f0]
push dword [eax]
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004057e4
jmp 0x4b2365
mov eax, dword [ebp - 0x10]
xor edx, edx
call fcn.0040582c
jbe 0x4b225e
push dword [ebp - 0x10]
push 0x4b2f6c
mov eax, dword [0x4c42f0]
push dword [eax]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004057e4
jmp 0x4b2365
mov ecx, dword [0x4c42f0]
mov ecx, dword [ecx]
lea eax, [ebp - 0x10]
mov edx, 0x4b2f74
call fcn.0040577c
jmp 0x4b2365
mov ecx, dword [0x4c4204]
mov ecx, dword [ecx]
lea eax, [ebp - 0x10]
mov edx, 0x4b2f74
call fcn.0040577c
mov eax, dword [0x4c3f64]
cmp byte [eax], 0
jne 0x4b22d5
mov eax, dword [esi]
mov eax, dword [eax + 0x358]
cmp byte [eax + 0x57], 0
je 0x4b22d5
mov eax, dword [esi]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b22d5
push dword [ebp - 0x10]
push 0x4b2f6c
mov eax, dword [0x4c42c8]
push dword [eax]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004057e4
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4b231d
mov eax, dword [esi]
mov eax, dword [eax + 0x350]
cmp byte [eax + 0x57], 0
je 0x4b231d
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b231d
push dword [ebp - 0x10]
push 0x4b2f6c
mov eax, dword [0x4c4290]
push dword [eax]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004057e4
mov eax, dword [0x4c42cc]
cmp byte [eax], 0
jne 0x4b2365
mov eax, dword [esi]
mov eax, dword [eax + 0x348]
cmp byte [eax + 0x57], 0
je 0x4b2365
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b2365
push dword [ebp - 0x10]
push 0x4b2f6c
mov eax, dword [0x4c42f0]
push dword [eax]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.004057e4
push dword [ebp - 4]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
lea eax, [ebp - 4]
mov edx, 4
call fcn.004057e4
mov eax, dword [0x4c4000]
cmp byte [eax], 0
je 0x4b23a2
mov eax, dword [0x4c408c]
mov eax, dword [eax]
mov edx, dword [0x4c4284]
mov edx, dword [edx]
call fcn.0040582c
je 0x4b2540
lea eax, [ebp - 8]
call fcn.004054b0
mov edi, 0x1d
mov ebx, dword [0x4c3f24]
add ebx, 0xc
lea eax, [ebp - 0x38]
mov edx, ebx
call fcn.00404fcc
mov edx, dword [ebp - 0x38]
mov eax, dword [0x4c4354]
mov eax, dword [eax]
call fcn.00405174
jne 0x4b2429
cmp byte [ebx + 3], 0
jbe 0x4b242f
mov eax, dword [0x4c4354]
mov eax, dword [eax]
mov edx, 0x4b2fac
call fcn.00405174
je 0x4b242f
mov eax, dword [0x4c4354]
mov eax, dword [eax]
mov edx, 0x4b2fb8
call fcn.00405174
je 0x4b242f
push dword [ebp - 8]
push 0x4b2fc0
lea eax, [ebp - 0x3c]
lea edx, [ebx + 3]
call fcn.00405644
push dword [ebp - 0x3c]
push 0x4b2fcc
lea eax, [ebp - 8]
mov edx, 4
call fcn.004057e4
jmp 0x4b242f
add ebx, 0x20
dec edi
jne 0x4b23b8
mov eax, dword [0x4c4450]
cmp byte [eax], 0
jne 0x4b244d
mov eax, dword [esi]
mov eax, dword [eax + 0x344]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b246c
push dword [ebp - 8]
push 0x4b2fc0
push 0x4b2fdc
push 0x4b2fcc
lea eax, [ebp - 8]
mov edx, 4
call fcn.004057e4
mov eax, dword [0x4c42dc]
cmp byte [eax], 0
je 0x4b2495
push dword [ebp - 8]
push 0x4b2fc0
push 0x4b300c
push 0x4b2fcc
lea eax, [ebp - 8]
mov edx, 4
call fcn.004057e4
push dword [ebp - 8]
push 0x4b2fc0
push 0x4b3038
push 0x4b2fcc
lea eax, [ebp - 8]
mov edx, 4
call fcn.004057e4
mov eax, dword [0x4c4358]
cmp byte [eax], 0
jne 0x4b24e7
mov eax, dword [0x4c3f58]
cmp byte [eax], 0
jne 0x4b24e7
push dword [ebp - 8]
push 0x4b2fc0
push 0x4b3058
push 0x4b2fcc
lea eax, [ebp - 8]
mov edx, 4
call fcn.004057e4
lea eax, [ebp - 8]
mov edx, 0x4b3080
call fcn.0040571c
lea eax, [ebp - 8]
mov edx, 0x4b30b8
call fcn.0040571c
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.0040582c
jbe 0x4b2540
mov eax, dword [ebp - 8]
cmp word [eax], 0x3b
jne 0x4b2528
lea eax, [ebp - 8]
mov ecx, 1
mov edx, 1
call fcn.004058fc
push dword [ebp - 4]
push 0x4b30ec
push dword [ebp - 8]
lea eax, [ebp - 4]
mov edx, 3
call fcn.004057e4
lea eax, [ebp - 4]
mov edx, 0x4b310c
call fcn.0040571c
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.00409b2c
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 4]
call fcn.00405510
lea eax, [ebp - 0x48]
mov ecx, dword [ebp - 4]
mov edx, 0x4b31ac
call fcn.0040577c
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x44]
call fcn.00404ff0
mov eax, dword [ebp - 0x44]
call fcn.004b3ba4
mov eax, dword [esi]
mov eax, dword [eax + 0x350]
cmp byte [eax + 0x57], 0
je 0x4b263c
push 0x80000001
push 0
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
xor ecx, ecx
mov edx, 1
call fcn.0042f4a4
mov edx, eax
mov ecx, 0x4b31e0
mov eax, 0x4b3204
call fcn.004a2408
mov ecx, 0x80000001
mov edx, 0x4b3218
mov eax, 0x4b3240
call fcn.004a25b4
test al, al
je 0x4b25f8
mov ecx, 0x80000001
mov edx, 0x4b3218
mov eax, 0x4b3240
call fcn.004a2530
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b263c
mov ecx, 0x80000001
mov edx, 0x4b325c
mov eax, 0x4b3280
call fcn.004a25b4
test al, al
je 0x4b263c
push 0x80000001
push 0
mov ecx, 0x4b325c
xor edx, edx
mov eax, 0x4b32b0
call fcn.004a2408
mov eax, dword [esi]
mov eax, dword [eax + 0x348]
cmp byte [eax + 0x57], 0
je 0x4b270a
push 0x80000001
push 0
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
xor ecx, ecx
mov edx, 1
call fcn.0042f4a4
mov edx, eax
mov ecx, 0x4b31e0
mov eax, 0x4b32cc
call fcn.004a2408
mov ecx, 0x80000001
mov edx, 0x4b3218
mov eax, 0x4b32dc
call fcn.004a25b4
test al, al
je 0x4b26ae
mov ecx, 0x80000001
mov edx, 0x4b3218
mov eax, 0x4b32dc
call fcn.004a2530
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b270a
mov ecx, 0x80000001
mov edx, 0x4b32f8
mov eax, 0x4b3280
call fcn.004a25b4
test al, al
je 0x4b270a
push 0x80000001
push 0
mov ecx, 0x4b32f8
xor edx, edx
mov eax, 0x4b32b0
call fcn.004a2408
push 0x80000002
push 0
mov ecx, 0x4b32f8
xor edx, edx
mov eax, 0x4b32b0
call fcn.004a2408
mov eax, dword [esi]
mov eax, dword [eax + 0x368]
cmp byte [eax + 0x57], 0
je 0x4b274c
push 0x80000001
push 0
mov eax, dword [esi]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
xor ecx, ecx
mov edx, 1
call fcn.0042f4a4
mov edx, eax
mov ecx, 0x4b31e0
mov eax, 0x4b332c
call fcn.004a2408
mov eax, dword [ebp - 4]
call fcn.00405700
push eax
mov eax, dword [0x4c4090]
mov eax, dword [eax]
call fcn.00405700
push eax
mov eax, dword [0x4c4234]
mov eax, dword [eax]
call eax
mov ebx, eax
test ebx, ebx
jne 0x4b2869
mov edx, dword [0x4c4280]
mov edx, dword [edx]
lea eax, [ebp - 0x4c]
mov ecx, 0x4b333c
call fcn.0040577c
mov eax, dword [ebp - 0x4c]
call fcn.00482b6c
test al, al
jne 0x4b2869
lea eax, [ebp - 4]
mov edx, 0x4b3364
call fcn.00405510
push dword [ebp - 4]
push 0x4b3388
mov eax, dword [0x4c4280]
push dword [eax]
push 0x4b2e1c
lea eax, [ebp - 4]
mov edx, 4
call fcn.004057e4
mov eax, dword [0x4c3f54]
cmp byte [eax], 0
jne 0x4b27f4
mov eax, dword [esi]
mov eax, dword [eax + 0x368]
cmp byte [eax + 0x57], 0
je 0x4b27f4
mov eax, dword [esi]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b27fe
mov eax, dword [0x4c4254]
cmp byte [eax], 0
je 0x4b280b
lea eax, [ebp - 4]
mov edx, 0x4b2e24
call fcn.0040571c
lea eax, [ebp - 4]
mov edx, 0x4b2e4c
call fcn.0040571c
lea eax, [ebp - 4]
mov edx, 0x4b310c
call fcn.0040571c
lea eax, [ebp - 0x54]
mov ecx, dword [ebp - 4]
mov edx, 0x4b33a8
call fcn.0040577c
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0x50]
call fcn.00404ff0
mov eax, dword [ebp - 0x50]
call fcn.004b3ba4
mov eax, dword [ebp - 4]
call fcn.00405700
push eax
mov eax, dword [0x4c4090]
mov eax, dword [eax]
call fcn.00405700
push eax
mov eax, dword [0x4c4234]
mov eax, dword [eax]
call eax
mov ebx, eax
test ebx, ebx
je 0x4b2927
cmp ebx, 0xbc2
je 0x4b2927
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x5c]
call fcn.0040a004
mov ecx, dword [ebp - 0x5c]
lea eax, [ebp - 0x58]
mov edx, 0x4b33e0
call fcn.00405074
mov eax, dword [ebp - 0x58]
call fcn.004b3ba4
mov eax, dword [0x4c41a4]
mov byte [eax], 2
cmp ebx, 0x642
je 0x4b28ff
push 1
push 1
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x64]
mov eax, dword [0x4c3fdc]
mov eax, dword [eax]
mov edx, 0x4b340c
call fcn.00481078
mov eax, dword [ebp - 0x64]
push eax
lea edx, [ebp - 0x70]
mov eax, ebx
call fcn.004aeeac
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x68], 0xf
lea edx, [ebp - 0x6c]
xor ecx, ecx
pop eax
call fcn.004825a4
mov eax, dword [ebp - 0x60]
or ecx, 0xffffffff
xor edx, edx
call fcn.004a7e0c
cmp dword [esi], 0
je 0x4b291a
push 0
push 0
push 0xd30
mov eax, dword [esi]
call fcn.0046bf94
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
call fcn.004a7464
mov eax, dword [esi]
mov eax, dword [eax + 0x358]
cmp byte [eax + 0x57], 0
je 0x4b2958
mov eax, dword [esi]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b2958
mov eax, 0x4b343c
call fcn.004b5d34
mov eax, dword [esi]
mov eax, dword [eax + 0x350]
cmp byte [eax + 0x57], 0
je 0x4b2984
mov eax, dword [esi]
mov eax, dword [eax + 0x354]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b2984
mov eax, 0x4b3448
call fcn.004b5d34
mov eax, dword [esi]
mov eax, dword [eax + 0x348]
cmp byte [eax + 0x57], 0
je 0x4b29b0
mov eax, dword [esi]
mov eax, dword [eax + 0x34c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b29b0
mov eax, 0x4b3454
call fcn.004b5d34
mov eax, dword [esi]
mov eax, dword [eax + 0x364]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x4b29fd
push 0x80000001
push 0
push 0x4b2e1c
mov eax, dword [0x4c4280]
push dword [eax]
push 0x4b345c
lea eax, [ebp - 0x74]
mov edx, 3
call fcn.004057e4
mov edx, dword [ebp - 0x74]
mov ecx, 0x4b34b4
mov eax, 0x4b34e8
call fcn.004a2494
jmp 0x4b2a29
mov ecx, 0x80000001
mov edx, 0x4b34b4
mov eax, 0x4b34e8
call fcn.004a25b4
test al, al
je 0x4b2a29
mov ecx, 0x80000001
mov edx, 0x4b34b4
mov eax, 0x4b34e8
call fcn.004a2530
mov eax, dword [0x4c3f58]
cmp byte [eax], 0
je 0x4b2a63
mov eax, dword [0x4c41a4]
mov byte [eax], 3
cmp dword [esi], 0
je 0x4b2a56
push 0
push 0
push 0xd30
mov eax, dword [esi]
call fcn.0046bf94
push eax
call sub.user32.dll_PostMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
test ebx, ebx
jne 0x4b2aca
mov eax, 0x4b34fc
call fcn.004b3ba4
mov eax, dword [0x4c41a4]
mov byte [eax], 3
mov eax, dword [0x4c43f0]
cmp byte [eax], 0
je 0x4b2a8c
mov eax, dword [esi]
call fcn.004bd910
jmp 0x4b2b08
mov eax, dword [esi]
mov eax, dword [eax + 0x368]
cmp byte [eax + 0x57], 0
je 0x4b2aae
mov eax, dword [esi]
mov eax, dword [eax + 0x36c]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
jne 0x4b2ab8
mov eax, dword [0x4c4254]
cmp byte [eax], 0
je 0x4b2ac1
mov eax, dword [esi]
call fcn.0045b07c
jmp 0x4b2b08
mov eax, dword [esi]
call fcn.004bdd5c
jmp 0x4b2b08
cmp ebx, 0xbc2
jne 0x4b2b08
mov eax, 0x4b3524
call fcn.004b3ba4
mov eax, dword [0x4c41a4]
mov byte [eax], 4
mov eax, dword [0x4c4034]
cmp byte [eax], 0
jne 0x4b2af8
mov eax, dword [0x4c4088]
cmp byte [eax], 0
je 0x4b2b01
mov eax, dword [esi]
call fcn.004bd910
jmp 0x4b2b08
mov eax, dword [esi]
call fcn.004bdec4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4b2b42
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b2c0d
lea eax, [ebp - 0x78]
call fcn.00404d58
lea eax, [ebp - 0x74]
mov edx, 2
call fcn.004054c8
lea eax, [ebp - 0x64]
mov edx, 2
call fcn.004054c8
lea eax, [ebp - 0x5c]
mov edx, 2
call fcn.00404d7c
lea eax, [ebp - 0x54]
call fcn.004054b0
lea eax, [ebp - 0x50]
call fcn.00404d58
lea eax, [ebp - 0x4c]
mov edx, 2
call fcn.004054c8
lea eax, [ebp - 0x44]
call fcn.00404d58
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.004054c8
lea eax, [ebp - 0x38]
call fcn.00404d58
lea eax, [ebp - 0x34]
call fcn.004054b0
lea eax, [ebp - 0x30]
call fcn.00404d58
lea eax, [ebp - 0x2c]
call fcn.004054b0
lea eax, [ebp - 0x28]
call fcn.00404d58
lea eax, [ebp - 0x24]
call fcn.004054b0
lea eax, [ebp - 0x20]
call fcn.00404d58
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.004054c8
lea eax, [ebp - 8]
mov edx, 2
call fcn.004054c8
ret