Function at 0x41261a
Capabilities:
Accept command line arguments
Check os version
Get file attributes
Get system information on windows
Initialize winsock library
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x5e5620]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0x10]
push 0x58e058
push ebx
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x204], edi
call fcn.00562b58
push str.MSFTEDIT.DLL
call fcn.0040bd57
add esp, 0xc
push 0x5ebc44
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
lea eax, [ebp - 0x214]
mov dword [0x5ebae0], esi
push eax
lea eax, [ebp - 0x200]
mov dword [ebp - 0x214], ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.0040ff88
mov esi, eax
lea eax, [ebp - 0x200]
push esi
push eax
push str.nolicprompt
mov dword [ebp - 0x248], esi
call fcn.0040dc59
add esp, 0x18
test eax, eax
jne 0x4126d2
push esi
lea eax, [ebp - 0x200]
push eax
push 0x58bccc
call fcn.00417723
add esp, 0xc
test eax, eax
je 0x412e96
push esi
lea eax, [ebp - 0x200]
push eax
push 0x58e098
call fcn.0040dc59
add esp, 0xc
mov dword [0x5ebc60], eax
push 0x3a
pop ecx
test eax, eax
je 0x412700
cmp word [eax], cx
jne 0x412700
add eax, 2
mov dword [0x5ebc60], eax
push esi
lea eax, [ebp - 0x200]
push eax
push 0x58e0a0
call fcn.0040dc59
add esp, 0xc
test eax, eax
setne byte [ebp - 0x208]
test eax, eax
je 0x412771
mov eax, edi
movzx eax, word [eax]
test ax, ax
je 0x412771
mov ecx, eax
cmp cx, 0x2f
je 0x41273a
cmp cx, 0x2d
jne 0x41275e
push 3
lea eax, [edi + 2]
push 0x58e0a0
push eax
call fcn.00560383
add esp, 0xc
test eax, eax
jne 0x41275e
push 8
push 0x20
push edi
call fcn.0054ee80
add esp, 0xc
add edi, 2
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x41272e
mov edi, dword [ebp - 0x204]
push dword [ebp - 0x208]
push edi
call fcn.00409959
pop ecx
pop ecx
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x190
lea eax, [ebp - 0x1f8]
push ebx
push eax
call fcn.0054ee80
add esp, 0xc
lea eax, [ebp - 0x1f8]
push eax
xor eax, eax
inc eax
push eax
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
push 0x5ebaf8
mov dword [0x5ebaf8], 0x114
call edi
push 0x5ebaf8
mov dword [0x5ebaf8], 0x11c
call edi
push 0x5ebc18
call fcn.00412f6e
mov dword [0x5ebc14], eax
call fcn.0040dd01
mov dword [0x5ebc40], eax
mov dword [esp], 0x5ebc1c
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
xor eax, eax
inc eax
push eax
push str.BGInfo_Configuration_File
push str.BGInfo.Config.1
push str..bgi
call fcn.00413b87
add esp, 0x10
lea eax, [ebp - 0x210]
push eax
push 0x5ebc50
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push str.SoftwareWinternalsBGInfo
push SysReAllocStringLen
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push esi
lea eax, [ebp - 0x200]
push eax
push str.silent
call fcn.0040dc59
movzx ecx, byte [0x5ebc5c]
test eax, eax
push 1
pop eax
cmovne ecx, eax
mov dword [0x5ebae4], 0xa
push esi
lea eax, [ebp - 0x200]
mov byte [0x5ebc5c], cl
push eax
push str.timer
call fcn.0040dc59
mov edi, eax
add esp, 0x18
test edi, edi
je 0x4128ba
movzx eax, word [edi]
test ax, ax
je 0x4128ae
mov ecx, eax
push ecx
call fcn.00560f6a
pop ecx
test eax, eax
jne 0x4128ae
add edi, 2
movzx eax, word [edi]
mov ecx, eax
test ax, ax
jne 0x412896
push edi
call fcn.00561f02
pop ecx
mov dword [0x5ebae4], eax
push esi
lea eax, [ebp - 0x200]
push eax
push ebx
call fcn.0040dc59
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x204], edi
test edi, edi
je 0x412943
push ebx
push edi
call fcn.0054efda
sub eax, 8
pop ecx
pop ecx
cmp eax, edi
jb 0x4128f8
push str..bgi
push eax
call fcn.00552def
pop ecx
pop ecx
test eax, eax
je 0x412912
push edi
mov edi, 0x5eecc0
push str._s.bgi
push edi
mov dword [ebp - 0x204], edi
call fcn.00401bce
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x412943
cmp byte [0x5ebc5c], bl
jne 0x412d0c
push edi
push str.Cannot_find_the_configuration_file__s_n_nDo_you_want_to_create_a_new_file_
push 0x34
push ebx
call fcn.0040fe1f
add esp, 0x10
cmp eax, 6
jne 0x412d0c
push esi
lea eax, [ebp - 0x200]
push eax
push ebx
call fcn.0040dc59
add esp, 0xc
test eax, eax
je 0x4129fe
push str.You_may_not_specify_more_than_one_configuration_file_to_use._n_nAdditional_files_will_be_ignored
jmp 0x4129f3
cmp byte [0x5eeec8], bl
jne 0x4129e6
movzx eax, word [edi]
push eax
mov byte [ebp - 0x1f9], bl
call fcn.0055ffc0
pop ecx
cmp eax, 0x71
jne 0x41299c
push 0x3a
pop ecx
mov byte [ebp - 0x1f9], bl
cmp word [edi + 2], cx
je 0x41299c
mov byte [ebp - 0x1f9], 1
add edi, 2
push 0x3a
pop eax
cmp word [edi], ax
jne 0x4129a7
add edi, 2
push ebx
push edi
push dword [0x5ebc50]
call fcn.0040a662
add esp, 0xc
test al, al
je 0x4129c5
xor eax, eax
inc eax
mov byte [0x5eeec8], al
jmp 0x4129e6
cmp byte [ebp - 0x1f9], bl
jne 0x4129de
push edi
push str.Error_importing_settings_from__s
push 0x10
push ebx
call fcn.0040fe1f
add esp, 0x10
cmp byte [0x5eeec8], bl
je 0x4129fe
cmp dword [ebp - 0x204], ebx
je 0x4129fe
push str.Using_the__i_or__iq__import__options_in_conjunction_with_na_named_configuration_file_may_yield_unexpected_results._n_nSettings_imported_using__i_update_only_the_Default_nConfiguration__not_the_configuration_named_on_the_command_line.
push 0x30
push ebx
call fcn.0040fe1f
add esp, 0xc
push esi
lea eax, [ebp - 0x200]
push eax
push 0x58e280
call fcn.0040dc59
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x412966
push esi
lea eax, [ebp - 0x200]
push eax
push str.popup
call fcn.0040dc59
test eax, eax
lea eax, [ebp - 0x200]
push esi
push eax
push str.taskbar
setne byte [0x5ebc5e]
call fcn.0040dc59
test eax, eax
lea eax, [ebp - 0x200]
push esi
push eax
push 0x58e4b8
setne byte [0x5ebc5d]
call fcn.0040dc59
add esp, 0x24
mov dword [0x5ebc64], eax
test eax, eax
je 0x412a81
push 0x3a
pop ecx
cmp word [eax], cx
jne 0x412a81
add eax, 2
mov dword [0x5ebc64], eax
push 0x25a4
call fcn.0041913d
mov edi, dword [ebp - 0x204]
pop ecx
test eax, eax
je 0x412aa0
push edi
mov ecx, eax
call fcn.0040bae1
jmp 0x412aa2
mov eax, ebx
mov dword [ebp - 0x204], eax
mov ecx, 0x5ebc68
lea eax, [ebp - 0x204]
push eax
call fcn.0040a1e4
lea ecx, [ebp - 0x204]
call fcn.0040a46b
mov eax, dword [0x5ebc68]
cmp dword [eax + 0x654], ebx
jne 0x412af2
cmp byte [0x5ebc5c], bl
jne 0x412aea
push edi
push str.Error_loading__s
push 0x10
push ebx
call fcn.0040fe1f
add esp, 0x10
push 2
pop ebx
jmp 0x412e96
xor eax, eax
inc eax
cmp dword [ebp - 0x200], eax
je 0x412b1a
push ebx
push 0x4100da
push ebx
push 0x8a
push dword [0x5ebae0]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x412e96
mov edi, dword [ebp - 0x20c]
push 0x91
push edi
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x244], 0x30
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x23c], 0x40e267
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x234], 0x1e
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x91
push edi
mov dword [ebp - 0x22c], eax
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x7f00
push ebx
mov dword [ebp - 0x218], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x244]
push eax
mov dword [ebp - 0x224], 0x10
mov dword [ebp - 0x21c], str.BGInfoClass
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
je 0x412c9e
push 0x30
lea eax, [ebp - 0x244]
push ebx
push eax
call fcn.0054ee80
add esp, 0xc
mov dword [ebp - 0x244], 0x30
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x23c], 0x410df0
mov dword [ebp - 0x230], edi
push 0x7f88
push ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
push 0x91
push edi
mov dword [ebp - 0x228], eax
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x91
push edi
mov dword [ebp - 0x22c], eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x244]
push eax
mov dword [ebp - 0x21c], str.PreviewWindowClass
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
je 0x412c9e
push 0x30
lea eax, [ebp - 0x244]
push ebx
push eax
call fcn.0054ee80
add esp, 0xc
mov dword [ebp - 0x244], 0x30
mov dword [ebp - 0x240], 3
mov dword [ebp - 0x23c], 0x415989
mov dword [ebp - 0x230], edi
push 0x7f00
push ebx
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x244]
push eax
mov dword [ebp - 0x21c], str.RulerControlWindowClass
call dword [sym.imp.USER32.dll_RegisterClassExW]
test ax, ax
jne 0x412cab
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x412e96
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
xor eax, eax
push ebx
push dword [0x5ebae0]
inc eax
push ebx
push ebx
push eax
call edi
push eax
push ebx
call edi
push eax
push ebx
push ebx
push SysReAllocStringLen
push 0x58bccc
push str.PreviewWindowClass
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
push ebx
push method.REOLECallback.virtual_24
push eax
push 0x81
push dword [ebp - 0x20c]
mov dword [0x5ebaf0], eax
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov edi, eax
mov dword [ebp - 0x208], edi
test edi, edi
jne 0x412d16
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
lea ebx, [eax + 1]
jmp 0x412e96
cmp dword [0x5ebae4], ebx
jle 0x412dee
push 0x2c
lea eax, [ebp - 0x68]
push ebx
push eax
call fcn.0054ee80
add esp, 0xc
mov dword [ebp - 0x210], 0x2c
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x68]
push eax
push ebx
push ebx
push str.WindowPosition
push dword [0x5ebc50]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x68]
push eax
push edi
call dword [sym.imp.USER32.dll_SetWindowPlacement]
test eax, eax
jne 0x412d78
push dword [ebp + 0x14]
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
inc eax
push eax
push edi
call dword [sym.imp.USER32.dll_MonitorFromWindow]
push 9
mov edx, eax
mov dword [ebp - 0x3c], 0x28
pop ecx
xor eax, eax
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x3c]
push eax
push edx
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
mov edi, dword [ebp - 0x208]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x14]
push eax
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
jne 0x412dd3
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ecx
jmp 0x412dd9
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
push 5
push ebx
push ebx
push ecx
push eax
push ebx
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
push str.ACCELERATORS
push dword [ebp - 0x20c]
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
push ebx
push ebx
mov dword [ebp - 0x208], eax
lea eax, [ebp - 0x264]
push ebx
push eax
call edi
test eax, eax
je 0x412e90
mov esi, dword [ebp - 0x208]
cmp dword [ebp - 0x260], 0x1a
je 0x412e7a
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x208], eax
push ecx
push esi
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x412e7a
lea eax, [ebp - 0x264]
push eax
push dword [ebp - 0x208]
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x412e7a
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push ebx
push ebx
lea eax, [ebp - 0x264]
push eax
call edi
test eax, eax
jne 0x412e21
mov esi, dword [ebp - 0x248]
call dword [sym.imp.ole32.dll_CoUninitialize]
push esi
call fcn.00560aa1
push dword [ebp - 0x214]
call fcn.00560aa1
pop ecx
pop ecx
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0054d24a
leave
ret 0x10