Function at 0x411c50
Capabilities:
Check os version
Persist via windows service
Query or enumerate registry value
Resolve function by parsing pe exports
Set registry value
Shutdown system

Disassembly:
push 0xffffffffffffffff
push 0x42ece7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd0
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebx, ebx
xor edx, edx
mov eax, dword [edi + 0x7c]
mov dword [esp + 0x24], edx
cmp eax, ebx
jle 0x411c95
lea ecx, [edi + 0x80]
cmp dword [ecx], ebx
je 0x411c8b
inc edx
add ecx, 4
dec eax
jne 0x411c86
mov dword [esp + 0x24], edx
mov eax, dword [edi + 0x78]
mov ebp, 1
mov dword [edi + 0x324], eax
mov eax, 0x4030cc
lea esi, [edi + 0x71a4]
mov dword [edi + 0x328], ebx
mov dword [edi + 0x334], ebx
mov dword [edi + 0x32c], ebx
mov dword [edi + 0x33c], 0xa
mov dword [edi + 0x340], ebp
mov dword [edi + 0x7230], ebx
mov dword [edi + 0x7234], ebx
mov dword [edi + 0x7238], ebx
mov dword [edi + 0x7240], ebx
mov dword [edi + 0x7244], ebx
mov dword [edi + 0x723c], 7
mov dword [edi + 0x7248], ebx
mov dword [edi + 0x724c], 0x258
mov dword [edi + 0x7250], ebx
mov dword [edi + 0x7254], ebx
mov dword [edi + 0x7258], 0x50
mov dword [edi + 0x7260], ebx
mov dword [edi + 0x7264], ebx
mov dword [edi + 0x7268], ebx
mov dword [edi + 0x725c], ebx
mov dword [edi + 0x722c], ebx
mov dword [edi + 0x74], ebx
sub esi, eax
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x411d41
lea eax, [edi + 0x726c]
push 0x4030c8
push 0x4019f0
push eax
call dword [sym.imp.msvcrt.dll_sprintf]
mov eax, dword [edi + 0x78]
mov dword [edi + 0x727c], ebp
add esp, 0xc
xor ebp, ebp
cmp eax, ebx
jle 0x41204c
mov dword [esp + 0x28], 0xfffffd44
lea esi, [edi + 0x344]
mov eax, 0x78
mov ecx, 0xb4
mov dword [esi + 4], eax
mov dword [esi + 0x10], eax
mov eax, 1
mov dword [esi + 0x354], ebp
mov dword [esi], 0xffffffda
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0xffffffda
mov dword [esi + 0x14], ecx
mov dword [esi + 0x24], eax
mov ecx, dword [edi + 0x78]
cmp ecx, 0xc
jle 0x411dc7
mov dword [esi + 0x1c], eax
mov dword [esi + 0x2c], ebx
jmp 0x411dcd
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x2c], eax
cmp dword [esp + 0x24], 8
jg 0x411ddf
cmp dword [edi + 0x78], 0x14
jg 0x411ddf
mov dword [esi + 0x20], ebx
jmp 0x411de2
mov dword [esi + 0x20], eax
mov dword [esi + 0x28], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov ecx, dword [edi + 0x78]
cmp ecx, 0x10
jg 0x411e05
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], 0xc8
jmp 0x411e0f
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], 0x32
mov eax, 0x1e
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], 0x30
lea eax, [esi + 0x5c]
mov ecx, 4
mov dword [eax - 4], ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
add eax, 0x10
dec ecx
jne 0x411e2c
inc ebp
lea ecx, [esi + 0x98]
push ebp
push 0x4030bc
push ecx
call dword [sym.imp.msvcrt.dll_sprintf]
mov eax, 1
add esp, 0xc
mov dword [esi + 0xb8], eax
mov dword [esi + 0xbc], eax
mov dword [esi + 0xc8], eax
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xc4], ebx
mov dword [esi + 0xcc], 0xa
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xd4], ebx
mov dword [esi + 0xd8], ebx
mov dword [esi + 0xdc], ebx
mov dword [esi + 0xe0], ebx
lea eax, [esi + 0x184]
mov edx, 8
mov ecx, 1
mov dword [eax - 0x20], ebx
mov dword [eax], ebx
mov dword [eax - 0xa0], ecx
mov dword [eax - 0x80], ecx
mov dword [eax - 0x60], 0x960
mov dword [eax - 0x40], 0xffffffff
mov dword [eax + 0x20], ecx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x60], 0x960
mov dword [eax + 0x80], 0xffffffff
add eax, 4
dec edx
jne 0x411eaf
mov eax, dword [esp + 0x28]
lea edx, [ebp + 0x238b]
cmp eax, 0x14
mov dword [esi + 0x224], ecx
mov dword [esi + 0x228], edx
mov dword [esi + 0x22c], 0x100
mov dword [esi + 0x230], 4
mov dword [esi + 0x234], ecx
mov dword [esi + 0x2a8], ebx
mov dword [esi + 0x2e8], ebx
mov dword [esi + 0x238], 0x1e
mov dword [esi + 0x23c], ebx
mov dword [esi + 0x240], ebx
mov dword [esi + 0x244], ebx
mov dword [esi + 0x248], ecx
mov dword [esi + 0x24c], 0xa
mov dword [esi + 0x250], ebx
mov dword [esi + 0x254], ebx
mov dword [esi + 0x258], ebx
mov dword [esi + 0x25c], ebx
mov dword [esi + 0x260], ebp
mov dword [esi + 0x264], ecx
mov dword [esi + 0x268], ecx
mov dword [esi + 0x26c], 0x960
mov dword [esi + 0x270], 0x30
mov dword [esi + 0x274], ebx
mov dword [esi + 0x278], ebx
mov dword [esi + 0x27c], ebx
mov dword [esi + 0x280], ebx
mov dword [esi + 0x284], ebx
mov dword [esi + 0x288], ecx
mov dword [esi + 0x28c], ebx
mov dword [esi + 0x290], ebx
jge 0x411fdf
lea ecx, [eax + 0x2d0]
mov dword [esi + 0x29c], 0x12c
mov dword [esi + 0x2a4], 0x15e
jmp 0x412022
cmp eax, 0x2e4
jge 0x412008
mov dword [esi + 0x298], eax
mov dword [esi + 0x29c], 0x190
mov dword [esi + 0x2a0], eax
mov dword [esi + 0x2a4], 0x1c2
jmp 0x41202e
lea ecx, [eax - 0x2d0]
mov dword [esi + 0x29c], 0x1f4
mov dword [esi + 0x2a4], 0x226
mov dword [esi + 0x298], ecx
mov dword [esi + 0x2a0], ecx
add eax, 0x3c
mov dword [esi + 0x294], ebx
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x78]
add esi, 0x358
cmp ebp, eax
jl 0x411d86
lea ecx, [esp + 0x34]
call sub.mfc42.dll_CString::CString_3
lea eax, [edi + 0x7280]
mov dword [esp + 0xe8], ebx
push eax
lea eax, [esp + 0x38]
push 0x4030ac
push eax
call sub.mfc42.dll_CString::Format
add esp, 0xc
lea ecx, [esp + 0x38]
call fcn.0042da10
mov ecx, dword [esp + 0x34]
push ebx
push ebx
push ecx
lea ecx, [esp + 0x44]
mov byte [esp + 0xf4], 1
call sub.mfc42.dll_CStdioFile::Open
test eax, eax
je 0x413fce
lea ecx, [esp + 0x18]
call sub.mfc42.dll_CString::CString_3
lea ecx, [esp + 0x10]
mov byte [esp + 0xe8], 2
call sub.mfc42.dll_CString::CString_3
lea edx, [esp + 0x18]
lea ecx, [esp + 0x38]
push edx
mov byte [esp + 0xec], 3
xor esi, esi
call sub.mfc42.dll_CStdioFile::ReadString_1
test eax, eax
je 0x413f9e
mov ebp, dword [sym.imp.msvcrt.dll__mbscmp]
mov eax, dword [esp + 0x18]
push 0x4030a4
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4120f8
xor esi, esi
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x40309c
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x412115
mov esi, 1
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x403094
push edx
call ebp
add esp, 8
test eax, eax
jne 0x412132
mov esi, 2
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x40308c
push eax
call ebp
add esp, 8
test eax, eax
jne 0x41214f
mov esi, 3
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x403084
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x41216c
mov esi, 4
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x40307c
push edx
call ebp
add esp, 8
test eax, eax
jne 0x412189
mov esi, 5
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x403074
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4121a6
mov esi, 6
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x40306c
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x4121c3
mov esi, 7
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x403064
push edx
call ebp
add esp, 8
test eax, eax
jne 0x4121e0
mov esi, 8
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x40305c
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4121fd
mov esi, 9
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x403054
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x41221a
mov esi, 0xa
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x40304c
push edx
call ebp
add esp, 8
test eax, eax
jne 0x412237
mov esi, 0xb
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x403044
push eax
call ebp
add esp, 8
test eax, eax
jne 0x412254
mov esi, 0xc
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x40303c
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x412271
mov esi, 0xd
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x403034
push edx
call ebp
add esp, 8
test eax, eax
jne 0x41228e
mov esi, 0xe
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x40302c
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4122ab
mov esi, 0xf
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x403024
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x4122c8
mov esi, 0x10
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x40301c
push edx
call ebp
add esp, 8
test eax, eax
jne 0x4122e5
mov esi, 0x11
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x403014
push eax
call ebp
add esp, 8
test eax, eax
jne 0x412302
mov esi, 0x12
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x40300c
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x41231f
mov esi, 0x13
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x403004
push edx
call ebp
add esp, 8
test eax, eax
jne 0x41233c
mov esi, 0x14
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x402ffc
push eax
call ebp
add esp, 8
test eax, eax
jne 0x412359
mov esi, 0x15
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x402ff4
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x412376
mov esi, 0x16
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x402fec
push edx
call ebp
add esp, 8
test eax, eax
jne 0x412393
mov esi, 0x17
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x402fe4
push eax
call ebp
add esp, 8
test eax, eax
jne 0x4123b0
mov esi, 0x18
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x402fdc
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x4123cd
mov esi, 0x19
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x402fd4
push edx
call ebp
add esp, 8
test eax, eax
jne 0x4123ea
mov esi, 0x1a
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x402fcc
push eax
call ebp
add esp, 8
test eax, eax
jne 0x412407
mov esi, 0x1b
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x402fc4
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x412424
mov esi, 0x1c
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x402fbc
push edx
call ebp
add esp, 8
test eax, eax
jne 0x412441
mov esi, 0x1d
jmp 0x413f88
mov eax, dword [esp + 0x18]
push 0x402fb4
push eax
call ebp
add esp, 8
test eax, eax
jne 0x41245e
mov esi, 0x1e
jmp 0x413f88
mov ecx, dword [esp + 0x18]
push 0x402fac
push ecx
call ebp
add esp, 8
test eax, eax
jne 0x41247b
mov esi, 0x1f
jmp 0x413f88
mov edx, dword [esp + 0x18]
push 0x402fa8
lea ecx, [esp + 0x1c]
mov eax, dword [edx - 8]
push eax
call sub.mfc42.dll_CString::GetBuffer
mov ebp, dword [sym.imp.msvcrt.dll_strtok]
push eax
call ebp
add esp, 8
lea ecx, [esp + 0x10]
push eax
call sub.mfc42.dll_CString::operator_1
push 0xffffffffffffffff
lea ecx, [esp + 0x1c]
call sub.mfc42.dll_CString::ReleaseBuffer
push 0x402fa4
push ebx
call ebp
add esp, 8
cmp eax, ebx
mov dword [esp + 0x28], eax
je 0x4124d3
push eax
call dword [sym.imp.msvcrt.dll_atoi]
add esp, 4
mov ebp, eax
jmp 0x4124d5
xor ebp, ebp
lea ecx, [esp + 0x20]
call sub.mfc42.dll_CString::CString_3
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.msvcrt.dll__mbscmp]
push 0x402f94
push eax
mov byte [esp + 0xf0], 4
call ebx
add esp, 8
test eax, eax
jne 0x412505
mov dword [edi + 0x324], ebp
mov ecx, dword [esp + 0x10]
push 0x402f84
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x41251e
mov dword [edi + 0x328], ebp
mov edx, dword [esp + 0x10]
push 0x402f78
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412537
mov dword [edi + 0x334], ebp
mov eax, dword [esp + 0x10]
push 0x402f6c
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412550
mov dword [edi + 0x32c], ebp
mov ecx, dword [esp + 0x10]
push 0x402f5c
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412569
mov dword [edi + 0x33c], ebp
mov edx, dword [esp + 0x10]
push 0x402f54
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412582
mov dword [edi + 0x340], ebp
lea eax, [edi + 0x71c4]
xor ebx, ebx
mov dword [esp + 0x1c], eax
lea eax, [ebx + 0x43]
lea ecx, [esp + 0x20]
push eax
push 0x402f48
push ecx
call sub.mfc42.dll_CString::Format
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
push edx
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 0x14
test eax, eax
jne 0x4125be
mov ecx, dword [esp + 0x1c]
mov dword [ecx], ebp
mov ecx, dword [esp + 0x1c]
inc ebx
add ecx, 4
cmp ebx, 0x18
mov dword [esp + 0x1c], ecx
jl 0x41258e
mov edx, dword [esp + 0x10]
mov ebx, dword [sym.imp.msvcrt.dll__mbscmp]
push 0x402f38
push edx
call ebx
add esp, 8
test eax, eax
jne 0x41263e
mov dword [edi + 0x7224], ebp
mov eax, dword [edi + ebp*4 + 0x71c4]
test eax, eax
jne 0x41263e
xor eax, eax
lea ecx, [edi + 0x71c4]
cmp dword [ecx], 0
jne 0x412611
inc eax
add ecx, 4
cmp eax, 0x18
jl 0x412601
jmp 0x412617
mov dword [edi + 0x7224], eax
cmp eax, 0x18
jne 0x41263e
movsx eax, byte [edi + 0x7280]
mov dword [edi + eax*4 + 0x70b8], 1
movsx ecx, byte [edi + 0x7280]
sub ecx, 0x43
mov dword [edi + 0x7224], ecx
mov edx, dword [esp + 0x10]
push 0x402f30
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412657
mov dword [edi + 0x7228], ebp
mov eax, dword [esp + 0x10]
push 0x402f24
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412670
mov dword [edi + 0x7230], ebp
mov ecx, dword [esp + 0x10]
push 0x402f14
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412689
mov dword [edi + 0x7234], ebp
mov edx, dword [esp + 0x10]
push 0x402f08
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4126a2
mov dword [edi + 0x7238], ebp
mov eax, dword [esp + 0x10]
push 0x402efc
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4126bb
mov dword [edi + 0x723c], ebp
mov ecx, dword [esp + 0x10]
push 0x402ef0
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x4126d4
mov dword [edi + 0x7240], ebp
mov edx, dword [esp + 0x10]
push 0x402ee4
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4126ed
mov dword [edi + 0x7244], ebp
mov eax, dword [esp + 0x10]
push 0x402ed8
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412706
mov dword [edi + 0x7248], ebp
mov ecx, dword [esp + 0x10]
push 0x402ecc
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x41271f
mov dword [edi + 0x724c], ebp
mov edx, dword [esp + 0x10]
push 0x402ec0
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412738
mov dword [edi + 0x7250], ebp
mov eax, dword [esp + 0x10]
push 0x402eb4
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412751
mov dword [edi + 0x7254], ebp
mov ecx, dword [esp + 0x10]
push 0x402eac
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x41276a
mov dword [edi + 0x7258], ebp
mov edx, dword [esp + 0x10]
push 0x402ea0
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412783
mov dword [edi + 0x7260], ebp
mov eax, dword [esp + 0x10]
push 0x402e94
push eax
call ebx
add esp, 8
test eax, eax
jne 0x41279c
mov dword [edi + 0x7264], ebp
mov ecx, dword [esp + 0x10]
push 0x402e88
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x4127b5
mov dword [edi + 0x7268], ebp
mov edx, dword [esp + 0x10]
push 0x402e80
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4127ce
mov dword [edi + 0x725c], ebp
mov eax, dword [esp + 0x10]
push 0x402e74
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4127e7
mov dword [edi + 0x722c], ebp
mov ecx, dword [esp + 0x10]
push 0x402e6c
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x4127fd
mov dword [edi + 0x74], ebp
mov edx, dword [esp + 0x10]
push 0x402e5c
push edx
call ebx
mov ebx, dword [esp + 0x30]
add esp, 8
test eax, eax
jne 0x41283f
test ebx, ebx
lea edx, [edi + 0x71a4]
je 0x41282e
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x412822
jmp 0x41283f
mov eax, 0x431604
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x412835
mov eax, dword [esp + 0x10]
push 0x402e54
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x41286c
push ebx
lea eax, [edi + 0x726c]
push 0x4019f0
push eax
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
mov ecx, dword [esp + 0x10]
push 0x402e4c
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412889
mov dword [edi + 0x727c], ebp
mov edx, dword [esp + 0x10]
push 0x402e3c
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4128b2
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x698], ebp
mov ecx, dword [esp + 0x10]
push 0x402e30
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4128db
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x344], ebp
mov eax, dword [esp + 0x10]
push 0x402e24
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412904
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x348], ebp
mov edx, dword [esp + 0x10]
push 0x402e18
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x41292d
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x34c], ebp
mov ecx, dword [esp + 0x10]
push 0x402e0c
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412956
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x350], ebp
mov eax, dword [esp + 0x10]
push 0x402e00
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x41297f
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x354], ebp
mov edx, dword [esp + 0x10]
push 0x402df4
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4129a7
lea eax, [esi + 1]
lea ecx, [eax + eax*2]
lea ecx, [ecx + ecx*8]
shl ecx, 2
sub ecx, eax
mov dword [edi + ecx*8], ebp
mov edx, dword [esp + 0x10]
push 0x402dec
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4129d0
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x368], ebp
mov ecx, dword [esp + 0x10]
push 0x402de4
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x4129f9
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x360], ebp
mov eax, dword [esp + 0x10]
push 0x402ddc
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412a22
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x370], ebp
mov edx, dword [esp + 0x10]
push 0x402dd4
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412a4b
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x35c], ebp
mov ecx, dword [esp + 0x10]
push 0x402dcc
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412a74
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x364], ebp
mov eax, dword [esp + 0x10]
push 0x402dc4
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412a9d
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x36c], ebp
mov edx, dword [esp + 0x10]
push 0x402db8
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412ac6
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x374], ebp
mov ecx, dword [esp + 0x10]
push 0x402dac
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412aef
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x378], ebp
mov eax, dword [esp + 0x10]
push 0x402da0
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412b18
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x37c], ebp
mov edx, dword [esp + 0x10]
push 0x402d94
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412b41
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x380], ebp
mov ecx, dword [esp + 0x10]
push 0x402d88
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412b6a
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x384], ebp
mov eax, dword [esp + 0x10]
push 0x402d78
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412b93
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x388], ebp
mov edx, dword [esp + 0x10]
push 0x402d68
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412bbc
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x38c], ebp
mov ecx, dword [esp + 0x10]
push 0x402d5c
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412be5
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x390], ebp
mov eax, dword [esp + 0x10]
push 0x402d4c
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412c0e
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x394], ebp
mov edx, dword [esp + 0x10]
push 0x402d3c
push edx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412c37
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x398], ebp
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x20]
push ecx
push 0x402d2c
push edx
call sub.mfc42.dll_CString::Format
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 0x14
test eax, eax
jne 0x412d3d
test ebx, ebx
je 0x412c93
push 0x402d28
push ebx
call dword [sym.imp.msvcrt.dll_strtok]
add esp, 8
test eax, eax
je 0x412c93
push eax
call dword [sym.imp.msvcrt.dll_atoi]
add esp, 4
jmp 0x412c95
xor eax, eax
lea ebx, [esi + esi*2]
mov edx, dword [esp + 0x1c]
push 0x402d28
push 0
lea ebx, [ebx + ebx*8]
shl ebx, 2
sub ebx, esi
shl ebx, 3
lea ecx, [ebx + edx]
add ecx, edi
mov dword [esp + 0x38], ecx
mov dword [ecx + 0x39c], eax
call dword [sym.imp.msvcrt.dll_strtok]
add esp, 8
test eax, eax
je 0x412cd6
push eax
call dword [sym.imp.msvcrt.dll_atoi]
add esp, 4
jmp 0x412cd8
xor eax, eax
mov edx, dword [esp + 0x1c]
push 0x402d28
add ebx, edx
push 0
mov dword [ebx + edi + 0x3a0], eax
call dword [sym.imp.msvcrt.dll_strtok]
add esp, 8
test eax, eax
je 0x412d05
push eax
call dword [sym.imp.msvcrt.dll_atoi]
add esp, 4
jmp 0x412d07
xor eax, eax
mov ebx, dword [esp + 0x30]
push 0x402d28
push 0
mov dword [ebx + 0x3a4], eax
call dword [sym.imp.msvcrt.dll_strtok]
add esp, 8
test eax, eax
je 0x412d31
push eax
call dword [sym.imp.msvcrt.dll_atoi]
add esp, 4
jmp 0x412d33
xor eax, eax
mov dword [ebx + 0x3a8], eax
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
add eax, 0x10
cmp eax, 0x40
mov dword [esp + 0x1c], eax
jl 0x412c41
mov eax, dword [esp + 0x10]
push 0x402d1c
push eax
call dword [sym.imp.msvcrt.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x412dbd
test ebx, ebx
lea ecx, [esi + esi*2]
je 0x412d9a
lea ecx, [ecx + ecx*8]
mov eax, ebx
shl ecx, 2
sub ecx, esi
shl ecx, 3
sub ecx, ebx
lea edx, [ecx + edi + 0x3dc]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x412d8e
jmp 0x412dbd
lea edx, [ecx + ecx*8]
mov eax, 0x431604
shl edx, 2
sub edx, esi
shl edx, 3
sub edx, eax
lea edx, [edx + edi + 0x3dc]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x412db3
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.msvcrt.dll__mbscmp]
push 0x402d0c
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412de8
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x3fc], ebp
mov edx, dword [esp + 0x10]
push 0x402d04
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412e0d
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x400], ebp
mov ecx, dword [esp + 0x10]
push 0x402cf0
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412e32
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x404], ebp
mov eax, dword [esp + 0x10]
push 0x402cdc
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412e57
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x408], ebp
mov edx, dword [esp + 0x10]
push 0x402ccc
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412e7c
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x40c], ebp
mov ecx, dword [esp + 0x10]
push 0x402cc0
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412ea1
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x410], ebp
mov eax, dword [esp + 0x10]
push 0x402cb0
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412ec6
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x414], ebp
mov edx, dword [esp + 0x10]
push 0x402ca0
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412eeb
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x418], ebp
mov ecx, dword [esp + 0x10]
push 0x402c90
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412f10
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x41c], ebp
mov eax, dword [esp + 0x10]
push 0x402c84
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412f35
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x420], ebp
mov edx, dword [esp + 0x10]
push 0x402c78
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412f5a
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x424], ebp
mov ecx, dword [esp + 0x10]
push 0x402c6c
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412f7f
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4a8], ebp
mov eax, dword [esp + 0x10]
push 0x402c60
push eax
call ebx
add esp, 8
test eax, eax
jne 0x412fa4
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x4ac], ebp
mov edx, dword [esp + 0x10]
push 0x402c54
push edx
call ebx
add esp, 8
test eax, eax
jne 0x412fc9
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x4b0], ebp
mov ecx, dword [esp + 0x10]
push 0x402c48
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x412fee
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4b4], ebp
mov eax, dword [esp + 0x10]
push 0x402c3c
push eax
call ebx
add esp, 8
test eax, eax
jne 0x413013
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x4b8], ebp
mov edx, dword [esp + 0x10]
push 0x402c30
push edx
call ebx
add esp, 8
test eax, eax
jne 0x413038
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x4bc], ebp
mov ecx, dword [esp + 0x10]
push 0x402c24
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x41305d
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4c0], ebp
mov eax, dword [esp + 0x10]
push 0x402c18
push eax
call ebx
add esp, 8
test eax, eax
jne 0x413082
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x4c4], ebp
mov edx, dword [esp + 0x10]
push 0x402c0c
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4130a7
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x4c8], ebp
mov ecx, dword [esp + 0x10]
push 0x402c00
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x4130cc
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4cc], ebp
mov eax, dword [esp + 0x10]
push 0x402bf4
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4130f1
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x4d0], ebp
mov edx, dword [esp + 0x10]
push 0x402be8
push edx
call ebx
add esp, 8
test eax, eax
jne 0x413116
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x4d4], ebp
mov ecx, dword [esp + 0x10]
push 0x402bdc
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x41313b
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4d8], ebp
mov eax, dword [esp + 0x10]
push 0x402bd0
push eax
call ebx
add esp, 8
test eax, eax
jne 0x413160
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x4dc], ebp
mov edx, dword [esp + 0x10]
push 0x402bc4
push edx
call ebx
add esp, 8
test eax, eax
jne 0x413185
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x4e0], ebp
mov ecx, dword [esp + 0x10]
push 0x402bb8
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x4131aa
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x4e4], ebp
mov eax, dword [esp + 0x10]
push 0x402ba4
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4131cf
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x428], ebp
mov edx, dword [esp + 0x10]
push 0x402b90
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4131f4
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x42c], ebp
mov ecx, dword [esp + 0x10]
push 0x402b7c
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x413219
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x430], ebp
mov eax, dword [esp + 0x10]
push 0x402b68
push eax
call ebx
add esp, 8
test eax, eax
jne 0x41323e
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x434], ebp
mov edx, dword [esp + 0x10]
push 0x402b54
push edx
call ebx
add esp, 8
test eax, eax
jne 0x413263
lea eax, [esi + esi*2]
lea eax, [eax + eax*8]
shl eax, 2
sub eax, esi
mov dword [edi + eax*8 + 0x438], ebp
mov ecx, dword [esp + 0x10]
push 0x402b40
push ecx
call ebx
add esp, 8
test eax, eax
jne 0x413288
lea eax, [esi + esi*2]
lea edx, [eax + eax*8]
shl edx, 2
sub edx, esi
mov dword [edi + edx*8 + 0x43c], ebp
mov eax, dword [esp + 0x10]
push 0x402b2c
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4132ad
lea eax, [esi + esi*2]
lea ecx, [eax + eax*8]
shl ecx, 2
sub ecx, esi
mov dword [edi + ecx*8 + 0x440], ebp
mov edx, dword [esp + 0x10]
push 0x402b18
push edx
call ebx
add esp, 8
test eax, eax
jne 0x4132d2
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x3c]
call sub.mfc42.dll_CStdioFile::ReadString_1
test eax, eax
jne 0x4120de
lea ecx, [esp + 0x38]
call sub.mfc42.dll_CStdioFile::Close
lea ecx, [esp + 0x10]
mov byte [esp + 0xe8], 2
call sub.mfc42.dll_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0xe8], 1
call sub.mfc42.dll_CString::CString
jmp 0x4141bc
lea edx, [esp + 0x10]
mov ecx, edi
push edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
call fcn.0041ccb0
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x14]
cmp eax, 0x20
jb 0x41419c
ja 0x414003
cmp dword [esp + 0x10], 0x80000000
jbe 0x41419c
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0x94
push eax
call dword [sym.imp.kernel32.dll_GetVersionExA]
cmp dword [esp + 0x5c], 2
jne 0x41419c
cmp dword [esp + 0x50], 5
jne 0x41419c
cmp dword [esp + 0x54], ebx
jne 0x41419c
lea edx, [esp + 0x18]
xor ecx, ecx
push edx
push 1
push ebx
mov word [esp + 0x2d], cx
push 0x4024c4
push 0x80000002
mov dword [esp + 0x3c], 4
xor ebp, ebp
mov byte [esp + 0x34], 0
mov byte [esp + 0x37], cl
xor esi, esi
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x41419c
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
lea ecx, [esp + 0x30]
push eax
push ecx
push ebx
push ebx
push 0x4024b8
push edx
mov dword [esp + 0x3c], 4
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
test eax, eax
jne 0x4140a4
mov ebp, dword [esp + 0x30]
and ebp, 0xffff
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
cmp ebp, 0x400
jne 0x41419c
lea ecx, [esp + 0x18]
push ecx
push 0xf003f
push ebx
push 0x402484
push 0x80000002
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4141fa
lea edx, [esp + 0x24]
lea eax, [esp + 0x20]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push eax
push ecx
push ebx
push 0x402474
push edx
call dword [sym.imp.advapi32.dll_RegQueryValueExA]
test eax, eax
je 0x414118
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x1c]
push 4
push eax
push 4
push ebx
push 0x402474
push ecx
jmp 0x414134
mov al, byte [esp + 0x20]
test al, al
jne 0x414153
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push 4
push edx
push 4
push ebx
push 0x402474
push eax
mov byte [esp + 0x37], 0
mov byte [esp + 0x36], 0
mov byte [esp + 0x35], 0
mov byte [esp + 0x34], 1
mov esi, 1
call dword [sym.imp.advapi32.dll_RegSetValueExA]
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.advapi32.dll_RegCloseKey]
cmp esi, ebx
je 0x41419c
push ebx
push ebx
push 0x4023c8
call sub.mfc42.dll_AfxMessageBox
cmp eax, 1
jne 0x41419c
mov eax, dword [edi + 0x78]
xor esi, esi
cmp eax, ebx
jle 0x414190
mov ebp, dword [sym.imp.jvsdk.dll_JVS_CloseChannel]
push esi
call ebp
mov eax, dword [edi + 0x78]
add esp, 4
inc esi
cmp esi, eax
jl 0x414182
push ebx
push 2
mov dword [edi + 0x78], ebx
call dword [sym.imp.user32.dll_ExitWindowsEx]
movsx eax, byte [esp + 0x2f]
mov ecx, edi
mov dword [edi + eax*4 + 0x70b8], 1
add eax, 0xffffffbd
mov dword [edi + 0x7224], eax
call fcn.00417c50
lea ecx, [esp + 0x38]
mov byte [esp + 0xe8], 0
call sub.mfc42.dll_CStdioFile::CStdioFile
lea ecx, [esp + 0x34]
mov dword [esp + 0xe8], 0xffffffff
call sub.mfc42.dll_CString::CString
mov ecx, dword [esp + 0xe0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xdc
ret
lea edx, [esp + 0x18]
push edx
push 0x402484
push 0x80000002
call dword [sym.imp.advapi32.dll_RegCreateKeyA]
test eax, eax
jne 0x41419c
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x1d], al
mov byte [esp + 0x1e], al
mov byte [esp + 0x1f], al
lea eax, [esp + 0x1c]
push 4
push eax
push 4
push ebx
push 0x402474
push ecx
mov byte [esp + 0x34], 1
call dword [sym.imp.advapi32.dll_RegSetValueExA]
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x414162