Function at 0x1002984a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xbcc
mov eax, dword [0x100e5bc8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0xbc4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xbcc], eax
push 0x20
xor eax, eax
inc eax
mov ebx, ecx
pop ecx
mov dword [ebp - 0xbbc], eax
lea eax, [ebp - 0xbc0]
push eax
mov esi, 0x100a61d8
lea edi, [ebp - 0x7dc]
lea eax, [ebp - 0xbac]
push eax
rep movsd dword es:[edi], dword [esi]
xor edi, edi
push edi
push edi
push 2
push edi
mov dword [ebp - 0x34], 0x176
mov dword [ebp - 0x30], 0x177
mov dword [ebp - 0x2c], 0x178
mov dword [ebp - 0x28], 0x179
mov dword [ebp - 0x24], 0x17a
mov dword [ebp - 0x20], 0x17b
mov dword [ebp - 0x1c], 0x17c
mov dword [ebp - 0x18], 0x17d
mov dword [ebp - 0x14], 0x17e
mov dword [ebp - 0x10], 0x17f
mov dword [ebp - 0xc], 0x180
mov dword [ebp - 8], 0x181
mov dword [ebp - 0xbb0], edi
mov dword [ebp - 0xbac], edi
call sub.WINSPOOL.DRV_EnumPortsW
push dword [ebp - 0xbac]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [ebp - 0xbc0]
push ecx
lea ecx, [ebp - 0xbac]
push ecx
push dword [ebp - 0xbac]
mov dword [ebp - 0xbb8], eax
push eax
push 2
push edi
call sub.WINSPOOL.DRV_EnumPortsW
push 0x80
lea eax, [ebp - 0x8dc]
push eax
push 0x189
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
mov esi, dword [ebp - 0xbc4]
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0xc
lea eax, [ebp - 0x2cc]
push 0x104
push eax
push 0x12f
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0x18
lea eax, [ebp - 0x2cc]
push 0x104
push eax
push 0x197
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0x18
lea eax, [ebp - 0x2cc]
push 0x104
push eax
push 0x12f
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0x18
lea eax, [ebp - 0xba0]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x1c], ecx
jne 0x10029a6e
mov word [ebp - 0xb9e], cx
mov word [ebp - 0xb9a], cx
mov word [ebp - 0xb98], cx
mov eax, 0x7dc
xor ecx, ecx
mov word [ebp - 0xba0], ax
mov dword [ebp - 0xb96], ecx
jmp 0x10029a75
mov ax, word [ebp - 0xba0]
movzx eax, ax
push eax
lea eax, [ebp - 0x2cc]
push 0x100a6258
push eax
call fcn.1002cfc6
add esp, 0xc
lea eax, [ebp - 0x6dc]
push 0x104
push eax
movzx eax, word [ebp - 0xb9e]
push dword [ebp + eax*4 - 0x38]
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x6dc]
push eax
lea eax, [ebp - 0x2cc]
push 0x104
push eax
call fcn.100779ee
movzx eax, word [ebp - 0xb94]
push eax
movzx eax, word [ebp - 0xb96]
push eax
movzx eax, word [ebp - 0xb98]
push eax
movzx eax, word [ebp - 0xb9a]
push eax
lea eax, [ebp - 0x6dc]
push str.__02d__02d:_02d:_02d
push eax
call fcn.1002cfc6
lea eax, [ebp - 0x6dc]
push eax
lea eax, [ebp - 0x2cc]
push 0x104
push eax
call fcn.100779ee
add esp, 0x30
lea eax, [ebp - 0x2cc]
push edi
push eax
push 0x175
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
cmp dword [ebx + 0x340c], edi
je 0x10029b69
lea eax, [ebx + 0x27dc]
test eax, eax
je 0x10029b69
push 0x104
push eax
call fcn.100779cf
pop ecx
pop ecx
test eax, eax
je 0x10029b69
push edi
lea eax, [ebx + 0x27dc]
push eax
push 0x198
push 2
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bee7
mov esi, 0x104
push esi
lea eax, [ebp - 0x6dc]
push eax
push 0x12e
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x6dc]
push esi
push eax
call fcn.100779cf
mov esi, eax
lea eax, [ebp - 0x6dc]
push 0x104
push eax
call fcn.100779cf
mov ecx, eax
add esp, 0x10
mov eax, 0x104
sub eax, esi
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push eax
lea eax, [ebp - 0x6dc]
lea eax, [eax + ecx*2]
push eax
push 0x199
push dword [0x100ea5d8]
call esi
push 0x104
lea eax, [ebp - 0x2cc]
push eax
push 0x12d
push dword [0x100ea5d8]
call esi
lea eax, [ebp - 0x6dc]
push 0x104
push eax
call fcn.100779cf
add eax, eax
push eax
lea eax, [ebp - 0x6dc]
push eax
lea eax, [ebp - 0x2cc]
push 0x208
push eax
call fcn.10074484
mov esi, dword [ebp - 0xbc4]
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebx + 0x2df4]
add esp, 0x24
test eax, eax
je 0x10029c52
push 0x104
push eax
call fcn.100779cf
pop ecx
pop ecx
test eax, eax
je 0x10029c52
lea eax, [ebx + 0x2df4]
jmp 0x10029c83
cmp dword [ebx + 0x28], 2
jne 0x10029c7d
push 0x104
lea eax, [ebp - 0x2cc]
push eax
push 0x185
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x2cc]
jmp 0x10029c83
lea eax, [ebx + 0x3430]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0xc
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
mov edx, edi
add esp, 0xc
mov dword [ebp - 0xba4], edi
mov dword [ebp - 0xba8], edx
cmp dword [ebp - 0xbc0], edx
jbe 0x10029ee6
mov eax, dword [ebp - 0xbb8]
add eax, 4
mov dword [ebp - 0xbb4], eax
mov ecx, edi
cmp dword [ebp - 0xbb8], edi
je 0x10029d26
mov edx, dword [eax]
test edx, edx
je 0x10029d20
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
mov eax, dword [ebp - 0xbb4]
je 0x10029d1a
push 0x100a6260
push dword [eax]
call fcn.10078456
mov edx, dword [ebp - 0xba8]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xba4]
test eax, eax
mov eax, dword [ebp - 0xbb4]
jne 0x10029d26
inc edx
mov dword [ebp - 0xba8], edx
jmp 0x10029d26
mov ecx, dword [ebp - 0xba4]
mov edx, dword [ebp - 0xba8]
inc ecx
add eax, 0x14
mov dword [ebp - 0xba4], ecx
mov dword [ebp - 0xbb4], eax
cmp ecx, dword [ebp - 0xbc0]
jb 0x10029cce
test edx, edx
je 0x10029ee6
cmp dword [ebx + 0x340c], edi
je 0x10029eb3
cmp dword [ebx + 0x28], 2
jne 0x10029e1b
xor eax, eax
inc eax
mov dword [ebp - 0xbbc], eax
mov dword [ebp - 0xba4], eax
cmp dword [ebx + 0x204c], edi
je 0x10029dbe
push 0x104
lea eax, [ebp - 0x4d4]
push eax
push 0xffffffffffffffff
lea eax, [ebx + 0x20ec]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0xba4]
push eax
push edi
push 0x19a
push 1
push edi
lea eax, [ebp - 0x4d4]
push eax
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002c09b
mov eax, dword [ebp - 0xba4]
mov dword [ebp - 0xbbc], eax
cmp dword [ebx + 0x24d4], edi
je 0x10029ee6
push 0x104
lea eax, [ebp - 0x4d4]
push eax
push 0xffffffffffffffff
lea eax, [ebx + 0x2574]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0xba4]
push eax
push edi
push 0x19a
push 1
push 1
lea eax, [ebp - 0x4d4]
push eax
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002c09b
mov eax, dword [ebp - 0xba4]
mov dword [ebp - 0xbbc], eax
jmp 0x10029ee6
push 0x104
lea eax, [ebp - 0x4d4]
push eax
push 0xffffffffffffffff
lea eax, [ebx + 0x2564]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0x40
lea eax, [ebp - 0x44]
push eax
push dword [ebx + 0x34]
call fcn.1004541e
pop ecx
push eax
call fcn.1004544e
add esp, 0xc
lea eax, [ebp - 0x75c]
push 0x40
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4d4]
push eax
call fcn.1007835a
neg eax
sbb eax, eax
pop ecx
neg eax
pop ecx
add eax, 0x187
push eax
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x75c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebx + 0x2bec]
push eax
lea eax, [ebp - 0xb24]
push 0x100a62d4
push eax
call fcn.1002cfe2
add esp, 0x14
lea eax, [ebp - 0xb24]
push edi
push eax
jmp 0x10029ed6
lea esi, [ebx + 0x3430]
push esi
push str.BJNP_PortName_is__1_s_
push str.CIPConfigDlg::MakeGeneralInfo
push 4
call fcn.10009c3c
add esp, 0x10
push edi
push esi
mov esi, dword [ebp - 0xbc4]
push 0x19a
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
cmp dword [ebx + 0x3428], edi
je 0x1002a2a3
push 0x208
lea eax, [ebp - 0x4d4]
push edi
push eax
call fcn.10074510
add esp, 0xc
cmp dword [ebx + 0x340c], edi
je 0x1002a28a
cmp dword [ebx + 0x28], 2
jne 0x1002a0da
lea eax, [ebx + 0x1f4c]
test eax, eax
je 0x10029ff8
push 0x100
push eax
call fcn.100776ec
pop ecx
pop ecx
test eax, eax
je 0x10029ff8
movsx eax, byte [ebx + 0x20fc]
push eax
movsx eax, byte [ebx + 0x20fb]
push eax
movsx eax, byte [ebx + 0x20f9]
push eax
movsx eax, byte [ebx + 0x20f8]
push eax
movsx eax, byte [ebx + 0x20f6]
push eax
movsx eax, byte [ebx + 0x20f5]
push eax
movsx eax, byte [ebx + 0x20f3]
push eax
movsx eax, byte [ebx + 0x20f2]
push eax
movsx eax, byte [ebx + 0x20f0]
push eax
movsx eax, byte [ebx + 0x20ef]
push eax
movsx eax, byte [ebx + 0x20ed]
push eax
movsx eax, byte [ebx + 0x20ec]
push eax
lea eax, [ebx + 0x29e4]
push eax
lea eax, [ebp - 0x4d4]
push 0x100a6320
push eax
call fcn.1002cfc6
add esp, 0x3c
lea eax, [ebp - 0xae4]
push 0x104
push eax
lea eax, [ebp - 0x4d4]
push eax
mov ecx, ebx
call fcn.1002c296
mov dword [ebp - 0xbb0], eax
test eax, eax
je 0x10029ff8
push 1
lea eax, [ebp - 0xae4]
push eax
push 0x19b
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
lea eax, [ebx + 0x23d4]
test eax, eax
je 0x1002a282
push 0x100
push eax
call fcn.100776ec
pop ecx
pop ecx
test eax, eax
je 0x1002a282
movsx eax, byte [ebx + 0x2584]
push eax
movsx eax, byte [ebx + 0x2583]
push eax
movsx eax, byte [ebx + 0x2581]
push eax
movsx eax, byte [ebx + 0x2580]
push eax
movsx eax, byte [ebx + 0x257e]
push eax
movsx eax, byte [ebx + 0x257d]
push eax
movsx eax, byte [ebx + 0x257b]
push eax
movsx eax, byte [ebx + 0x257a]
push eax
movsx eax, byte [ebx + 0x2578]
push eax
movsx eax, byte [ebx + 0x2577]
push eax
movsx eax, byte [ebx + 0x2575]
push eax
movsx eax, byte [ebx + 0x2574]
push eax
lea eax, [ebx + 0x29e4]
push eax
lea eax, [ebp - 0x4d4]
push 0x100a6358
push eax
call fcn.1002cfc6
add esp, 0x3c
cmp dword [ebp - 0xbb0], edi
je 0x1002a245
lea eax, [ebp - 0x8dc]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebp - 0x4d4]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0x24
jmp 0x1002a282
push 0x40
lea eax, [ebp - 0xc4]
push eax
push dword [ebx + 0x34]
call fcn.1004541e
pop ecx
push eax
call fcn.1004544e
add esp, 0xc
lea eax, [ebp - 0x44]
push 0x20
push eax
push 0xffffffffffffffff
lea eax, [ebx + 0x2564]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.1007835a
pop ecx
pop ecx
test eax, eax
jne 0x1002a19d
movsx eax, byte [ebx + 0x2584]
push eax
movsx eax, byte [ebx + 0x2583]
push eax
movsx eax, byte [ebx + 0x2581]
push eax
movsx eax, byte [ebx + 0x2580]
push eax
movsx eax, byte [ebx + 0x257e]
push eax
movsx eax, byte [ebx + 0x257d]
push eax
movsx eax, byte [ebx + 0x257b]
push eax
movsx eax, byte [ebx + 0x257a]
push eax
movsx eax, byte [ebx + 0x2578]
push eax
movsx eax, byte [ebx + 0x2577]
push eax
movsx eax, byte [ebx + 0x2575]
push eax
movsx eax, byte [ebx + 0x2574]
push eax
lea eax, [ebx + 0x29e4]
push eax
lea eax, [ebp - 0x4d4]
push 0x100a6390
push eax
call fcn.1002cfc6
add esp, 0x3c
push 0x20
lea eax, [ebp - 0x44]
push eax
push 0xffffffffffffffff
lea eax, [ebx + 0x20dc]
push eax
push edi
push edi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.1007835a
pop ecx
pop ecx
test eax, eax
jne 0x1002a245
movsx eax, byte [ebx + 0x20fc]
push eax
movsx eax, byte [ebx + 0x20fb]
push eax
movsx eax, byte [ebx + 0x20f9]
push eax
movsx eax, byte [ebx + 0x20f8]
push eax
movsx eax, byte [ebx + 0x20f6]
push eax
movsx eax, byte [ebx + 0x20f5]
push eax
movsx eax, byte [ebx + 0x20f3]
push eax
movsx eax, byte [ebx + 0x20f2]
push eax
movsx eax, byte [ebx + 0x20f0]
push eax
movsx eax, byte [ebx + 0x20ef]
push eax
movsx eax, byte [ebx + 0x20ed]
push eax
movsx eax, byte [ebx + 0x20ec]
push eax
lea eax, [ebx + 0x29e4]
push eax
lea eax, [ebp - 0x4d4]
push str._s__C_C_C_C_C_C_C_C_C_C_C_C
push eax
call fcn.1002cfc6
add esp, 0x3c
push 0x104
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0x4d4]
push eax
mov ecx, ebx
call fcn.1002c296
mov dword [ebp - 0xbb0], eax
test eax, eax
je 0x1002a28a
push 1
lea eax, [ebp - 0xae4]
push eax
push 0x19b
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
cmp dword [ebp - 0xbb0], edi
jne 0x1002a2a3
push 1
lea eax, [ebx + 0x3430]
push eax
push 0x19b
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
cmp dword [ebx + 0x340c], edi
je 0x1002a3cf
test dword [ebx + 0x1914], 0x1000
je 0x1002a3cf
lea eax, [ebx + 0x23d4]
test eax, eax
je 0x1002a2da
push 0x100
push eax
call fcn.100776ec
pop ecx
pop ecx
test eax, eax
jne 0x1002a2fd
lea eax, [ebx + 0x1f4c]
test eax, eax
je 0x1002a3cf
push 0x100
push eax
call fcn.100776ec
pop ecx
pop ecx
test eax, eax
je 0x1002a3cf
push 0x100a6400
lea eax, [ebp - 0x2cc]
push 0x104
push eax
call fcn.10077973
add esp, 0xc
lea eax, [ebx + 0x20ec]
push 0x20
push eax
push 0x20
lea eax, [ebx + 0x2574]
push eax
lea eax, [ebp - 0x2c8]
push eax
mov ecx, ebx
call fcn.1002b59f
push str.canon_memory
lea eax, [ebp - 0x2cc]
push 0x104
push eax
call fcn.100779ee
lea eax, [ebp - 0x2cc]
push eax
call fcn.10045974
movzx eax, ax
add esp, 0x10
test ax, ax
je 0x1002a399
push eax
lea eax, [ebp - 0x24]
push str._C:_
push eax
call fcn.1002cfad
add esp, 0xc
lea eax, [ebp - 0xb90]
push 0x200
push 0x2b4
push eax
push edi
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea eax, [ebp - 0xb84]
jmp 0x1002a3bc
push 0x104
lea eax, [ebp - 0x2cc]
push eax
push 0x19e
push dword [0x100ea5d8]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0x2cc]
push 1
push eax
push 0x19c
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
cmp dword [ebx + 0x342c], edi
je 0x1002a3ee
push dword [ebp - 0xbc0]
mov ecx, ebx
push dword [ebp - 0xbb8]
push dword [ebp + 0xc]
push esi
call fcn.1002b6a6
lea eax, [ebx + 0x3450]
push eax
push dword [ebp + 0xc]
push esi
call fcn.100779ee
add esp, 0xc
cmp dword [ebp - 0xba8], edi
je 0x1002a49f
lea eax, [ebp - 0xbc8]
push eax
push 0x20019
push edi
lea eax, [ebp - 0x7dc]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1002a469
lea eax, [ebp - 0xbac]
push eax
lea eax, [ebp - 0x84]
push eax
push edi
push edi
push 0x100a6430
push dword [ebp - 0xbc8]
mov dword [ebp - 0xbac], 0x40
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0xbc8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x1002a472
xor eax, eax
mov word [ebp - 0x84], ax
cmp dword [ebx + 0x28], 1
push edi
jne 0x1002a482
lea eax, [ebp - 0x84]
push eax
jmp 0x1002a48f
cmp dword [ebp - 0xbbc], edi
je 0x1002a479
push 0x100a6444
push 0x19d
push dword [ebp + 0xc]
mov ecx, ebx
push esi
call fcn.1002bdca
test esi, esi
je 0x1002a4b0
push dword [ebp + 0xc]
push esi
call fcn.100779cf
pop ecx
pop ecx
mov edi, eax
mov ecx, dword [ebp - 0xbcc]
push dword [ebp - 0xbb8]
lea eax, [edi*2 + 2]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10075551
leave
ret 0xc