Function at 0x415535
Capabilities:
Query environment variable
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a0
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
cmp dword [0x43d8a4], 0
jne 0x414a9f
push 0x7d00
call fcn.0041a65d
pop ecx
mov dword [0x43d8a4], eax
jmp 0x414aa7
mov eax, dword [0x43d8a4]
mov byte [eax], 0
mov eax, dword [0x43d8a4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov word [eax], 8
cmp dword [ebp + 8], 0xffffffff
je 0x414ad2
mov eax, dword [ebp + 8]
cmp dword [eax*8 + 0x43a20c], 0xffffffde
je 0x414ad2
mov eax, dword [ebp + 0xc]
mov word [eax], 3
mov eax, dword [ebp + 8]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0x41
ja case.default.0x414aee
mov eax, dword [ebp - 0x17c]
jmp dword [eax*4 + 0x415b3d]
mov dword [ebp - 0x18], 0x43a420
jmp 0x415ada
mov dword [ebp - 0x18], 0x44eac3
jmp 0x415ada
cmp dword [0x44f970], 2
jne 0x414b24
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x44f96c]
mov dword [eax + 8], ecx
jmp 0x414b34
mov eax, dword [0x44f96c]
and eax, 0xffff
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
call fcn.0040848f
mov dword [ebp - 0x1c], eax
and dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x1c]
and eax, 7
mov ecx, dword [0x43d8a4]
add ecx, dword [ebp - 0x14]
mov edx, dword [str.nbgcrmyw]
mov al, byte [edx + eax]
mov byte [ecx], al
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
and eax, 8
je 0x414b80
mov eax, dword [0x43d8a4]
add eax, dword [ebp - 0x14]
mov byte [eax], 0x2b
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [0x43d8a4]
add eax, dword [ebp - 0x14]
mov byte [eax], 0x2f
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
and eax, 0x70
shr eax, 4
mov ecx, dword [0x43d8a4]
add ecx, dword [ebp - 0x14]
mov edx, dword [str.nbgcrmyw]
mov al, byte [edx + eax]
mov byte [ecx], al
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
and eax, 0x80
je 0x414bd2
mov eax, dword [0x43d8a4]
add eax, dword [ebp - 0x14]
mov byte [eax], 0x2b
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [0x43d8a4]
add eax, dword [ebp - 0x14]
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414bfd
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f113
jmp 0x415ada
call fcn.00401dcc
mov dword [ebp - 0x18], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x43a424
jmp 0x415ada
mov dword [ebp - 0x18], 0x44f974
jmp 0x415ada
push dword [0x43d8a4]
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x414c50
mov eax, dword [0x43d8a4]
mov dword [ebp - 0x18], eax
jmp 0x415ada
movzx eax, word [ebp - 0xa]
push eax
movzx eax, word [ebp - 0xe]
push eax
movzx eax, word [ebp - 0x10]
push eax
push str._04d__02d__02d
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0x14
jmp 0x415ada
movzx eax, word [ebp - 0xc]
mov eax, dword [eax*4 + 0x439f14]
mov dword [ebp - 0x18], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x44ede4
jmp 0x415ada
push dword [0x44f968]
push dword [0x44f964]
push 0x43a438
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0x10
jmp 0x415ada
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x43d000]
mov dword [eax + 8], ecx
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414ce4
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f214
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414d04
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f416
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414d24
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f517
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414d44
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f51c
jmp 0x415ada
cmp dword [0x44f804], 0
jne 0x414d64
push 0x44e9c0
call fcn.00411a5f
pop ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0x13
je 0x414d9c
cmp dword [ebp - 0x180], 0x15
je 0x414dae
cmp dword [ebp - 0x180], 0x16
je 0x414dc1
cmp dword [ebp - 0x180], 0x17
je 0x414dd4
cmp dword [ebp - 0x180], 0x18
je 0x414de7
jmp 0x414df8
mov eax, 0x44f808
test eax, eax
je 0x414dac
mov dword [ebp - 0x18], 0x44f808
jmp 0x414df8
cmp dword [0x44f90c], 0
je 0x414dbf
mov eax, dword [0x44f90c]
mov dword [ebp - 0x18], eax
jmp 0x414df8
cmp dword [0x44f910], 0
je 0x414dd2
mov eax, dword [0x44f910]
mov dword [ebp - 0x18], eax
jmp 0x414df8
cmp dword [0x44f914], 0
je 0x414de5
mov eax, dword [0x44f914]
mov dword [ebp - 0x18], eax
jmp 0x414df8
cmp dword [0x44f918], 0
je 0x414df8
mov eax, dword [0x44f918]
mov dword [ebp - 0x18], eax
jmp 0x415ada
xor eax, eax
cmp dword [0x44f970], 2
setne al
inc eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
push 0
call fcn.0041b8fe
pop ecx
mov dword [ebp - 0x18], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x44ef07
jmp 0x415ada
mov dword [ebp - 0x18], 0x44edf4
jmp 0x415ada
mov dword [ebp - 0x18], 0x44f700
jmp 0x415ada
movsx eax, byte [0x44f009]
push eax
movsx eax, byte [0x44f008]
push eax
push str._d._d
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0x10
jmp 0x415ada
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x44e9ac]
mov dword [eax + 8], ecx
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414e96
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f315
jmp 0x415ada
mov dword [ebp - 0x18], 0x44ee04
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414ec2
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x44f6f8]
mov dword [eax + 8], ecx
jmp 0x415ada
movzx eax, word [ebp - 0xa]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
push str.MHz
push str.HKLMHARDWAREDESCRIPTIONSystemCentralProcessor0
call fcn.0041ca81
add esp, 0x10
mov dword [0x43d000], eax
cmp dword [0x43d000], 0
jne 0x414f27
push dword [ebp - 0x20]
call fcn.0041ea20
pop ecx
test eax, eax
je 0x414f27
push dword [ebp - 0x20]
call fcn.0041f020
pop ecx
mov dword [0x43a448], eax
jmp 0x414f2e
and dword [0x43a448], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x43a448]
mov dword [eax + 8], ecx
jmp 0x415ada
movzx eax, word [ebp - 0xe]
mov eax, dword [eax*4 + 0x439f98]
mov dword [ebp - 0x18], eax
jmp 0x415ada
movzx eax, word [ebp - 0xe]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
movzx eax, word [ebp - 2]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
push str.IsWow64Process
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x24], eax
and dword [ebp - 0x28], 0
mov eax, dword [ebp + 0xc]
and dword [eax + 8], 0
cmp dword [ebp - 0x24], 0
je 0x414fbf
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [ebp - 0x24]
test eax, eax
je 0x414fbf
cmp dword [ebp - 0x28], 1
jne 0x414fbf
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], 1
jmp 0x414fd5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Call_to_IsWow64Process_failed
push 1
call fcn.0041a819
add esp, 0xc
jmp 0x415ada
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x414fff
push 0x44e9c0
call fcn.00411e5a
pop ecx
cmp dword [0x44f6ec], 1
jne 0x415014
mov dword [ebp - 0x184], str.USER
jmp 0x41503f
cmp dword [0x44f6ec], 0
jne 0x415029
mov dword [ebp - 0x188], str.GUEST
jmp 0x415033
mov dword [ebp - 0x188], str.ADMIN
mov eax, dword [ebp - 0x188]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x18], eax
jmp 0x415ada
cmp dword [0x44f970], 2
jne 0x4151f2
cmp dword [0x44f964], 5
jb 0x415075
movzx eax, word [0x4579b8]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x4151f2
movzx eax, word [0x43a4dc]
cmp eax, 0xffff
jne 0x4151e5
and word [0x43a4dc], 0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
push str.ProductSuite
push 0x43a4f0
call fcn.0041ca81
add esp, 0x10
mov dword [0x43d000], eax
cmp dword [0x43d000], 0
jne 0x4151e5
push dword [ebp - 0x2c]
call fcn.0041ea20
pop ecx
test eax, eax
je 0x4151e5
push str.Enterprise
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x4150ee
movzx eax, word [0x43a4dc]
inc eax
inc eax
mov word [0x43a4dc], ax
push str.BackOffice
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x415111
movzx eax, word [0x43a4dc]
add eax, 4
mov word [0x43a4dc], ax
push str.CommunicationServer
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x415134
movzx eax, word [0x43a4dc]
add eax, 8
mov word [0x43a4dc], ax
push str.Small_Business_Restricted_
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x415159
movzx eax, word [0x43a4dc]
add eax, 0x20
mov word [0x43a4dc], ax
jmp 0x41517a
push str.Small_Business
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x41517a
movzx eax, word [0x43a4dc]
inc eax
mov word [0x43a4dc], ax
push str.Terminal_Server
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x41519d
movzx eax, word [0x43a4dc]
add eax, 0x10
mov word [0x43a4dc], ax
push str.EmbeddedNT
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x4151c0
movzx eax, word [0x43a4dc]
add eax, 0x40
mov word [0x43a4dc], ax
push str.DataCenter
push dword [ebp - 0x2c]
call fcn.00421780
pop ecx
pop ecx
test eax, eax
je 0x4151e5
movzx eax, word [0x43a4dc]
add eax, 0x80
mov word [0x43a4dc], ax
movzx eax, word [0x43a4dc]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
push 0x43a5b4
push dword [0x43d8a4]
call fcn.0041eab0
pop ecx
pop ecx
cmp dword [0x44f970], 2
jne 0x4154f8
cmp dword [0x44f964], 5
jae 0x4152c2
push 0x43a5c0
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x34]
push eax
push str.ProductType
push str.HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions
call fcn.0041ca81
add esp, 0x10
mov dword [0x43d000], eax
cmp dword [0x43d000], 0
jne 0x4152bd
push str.ServerNT
push dword [ebp - 0x34]
call fcn.0041eba8
pop ecx
pop ecx
test eax, eax
jne 0x415284
push 0x43a620
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4152bd
push str.LanmanNT
push dword [ebp - 0x34]
call fcn.0041eba8
pop ecx
pop ecx
test eax, eax
jne 0x4152ab
push 0x43a634
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4152bd
push str.Workstation
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4154f6
cmp dword [0x44f968], 0
jne 0x415365
push str.2000
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
mov al, byte [0x4579ba]
mov byte [ebp - 0x18c], al
cmp byte [ebp - 0x18c], 1
je 0x415309
cmp byte [ebp - 0x18c], 2
je 0x41531d
cmp byte [ebp - 0x18c], 3
je 0x415331
jmp 0x415345
push str.Professional
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x415360
push str.Domain_Controller
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x415360
push str.Server
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x415360
movzx eax, byte [0x4579ba]
push eax
push 0x43a688
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0xc
jmp 0x4154f6
mov al, byte [0x4579ba]
mov byte [ebp - 0x190], al
cmp byte [ebp - 0x190], 1
je 0x415398
cmp byte [ebp - 0x190], 2
je 0x415461
cmp byte [ebp - 0x190], 3
je 0x4154a7
jmp 0x4154db
cmp dword [0x44f964], 5
jne 0x4153ad
mov dword [ebp - 0x194], 0x43a698
jmp 0x4153b7
mov dword [ebp - 0x194], 0x43a69c
push dword [ebp - 0x194]
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
push 0x58
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4153ea
push str._Starter_Edition
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x41545c
push 0x57
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x41540a
push str._Media_Center_Edition
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x41545c
movzx eax, word [0x4579b8]
and eax, 0x200
je 0x41542c
push str._Home_Edition
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x41543e
push str._Professional
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
push 0x56
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x41545c
push str._Tablet_PC
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4154f6
cmp dword [0x44f964], 5
jne 0x415476
mov dword [ebp - 0x198], 0x43a700
jmp 0x415480
mov dword [ebp - 0x198], str.LongHorn
push dword [ebp - 0x198]
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
push str._Domain_Controller
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4154f6
cmp dword [0x44f964], 5
jne 0x4154bc
mov dword [ebp - 0x19c], str.Server_2003
jmp 0x4154c6
mov dword [ebp - 0x19c], str.LongHorn_Server
push dword [ebp - 0x19c]
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x4154f6
movzx eax, byte [0x4579ba]
push eax
push str.Unknown:__lu
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0xc
jmp 0x415561
cmp dword [0x44f964], 4
jne 0x41554f
cmp dword [0x44f968], 0
jne 0x41551e
push 0x43a758
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x41554d
cmp dword [0x44f968], 0x5a
jae 0x41553b
push 0x43a75c
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x41554d
push 0x43a760
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x415561
push str.Windows
push dword [0x43d8a4]
call fcn.0041eac0
pop ecx
pop ecx
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x41557a
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f6a8
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x41559a
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x44f6f4]
mov dword [eax + 8], ecx
jmp 0x415ada
cmp dword [0x44f6e8], 0xffffffff
jne 0x4155c6
and dword [0x44f6e8], 0
push 0x44e9c0
call fcn.004112d9
pop ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x44f6e8]
mov dword [eax + 8], ecx
jmp 0x415ada
cmp dword [0x43d8a0], 0
je 0x4155e8
mov eax, dword [0x43d8a0]
mov dword [ebp - 0x18], eax
jmp 0x415ada
cmp dword [0x44f00c], 0
jne 0x415601
push 0x44e9c0
call fcn.00411e5a
pop ecx
mov dword [ebp - 0x18], 0x44f010
jmp 0x415ada
cmp dword [0x43d000], 0
je 0x41564a
mov eax, dword [0x43d000]
cmp eax, dword [0x43d004]
jne 0x41564a
push dword [0x43d004]
push dword [0x43d004]
push dword [0x44f9f4]
push str._s___ld__X_
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0x14
jmp 0x41565d
push dword [0x43d8a4]
push dword [0x43d000]
call fcn.0040991d
pop ecx
pop ecx
jmp 0x415ada
call fcn.0041b82a
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x4156d7
push dword [ebp - 0x38]
push dword [0x43d8a4]
call fcn.0041a6c7
pop ecx
pop ecx
push 0x5c
push dword [0x43d8a4]
call fcn.0041f3a0
pop ecx
pop ecx
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x4156a0
mov eax, dword [ebp - 0x3c]
mov byte [eax], 0
jmp 0x4156d2
push dword [0x43d8a4]
call fcn.0041ea20
pop ecx
cmp eax, 2
jbe 0x4156ca
mov eax, dword [0x43d8a4]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x4156ca
mov eax, dword [0x43d8a4]
mov byte [eax + 2], 0
jmp 0x4156d2
mov eax, dword [0x43d8a4]
mov byte [eax], 0
jmp 0x415ada
jmp 0x415ada
mov dword [ebp - 0x18], 0x43a778
jmp 0x415ada
call fcn.0041b82a
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
je 0x41573e
push 0x5c
push dword [ebp - 0x40]
call fcn.0041f3a0
pop ecx
pop ecx
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x415714
mov eax, dword [ebp - 0x44]
inc eax
mov dword [ebp - 0x18], eax
jmp 0x41573e
push dword [ebp - 0x40]
call fcn.0041ea20
pop ecx
cmp eax, 2
jbe 0x415738
mov eax, dword [ebp - 0x40]
movsx eax, byte [eax + 1]
cmp eax, 0x3a
jne 0x415738
mov eax, dword [ebp - 0x40]
inc eax
inc eax
mov dword [ebp - 0x18], eax
jmp 0x41573e
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x44f61d
jmp 0x415ada
cmp dword [0x44f6a0], 0
jne 0x415763
push 0x44e9c0
call fcn.004113b2
pop ecx
mov eax, dword [0x44f6a4]
mov dword [ebp - 0x18], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x457800
jmp 0x415ada
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov dword [ebp - 0x15c], eax
push 0x104
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push str.USER.EXE
lea eax, [ebp - 0x150]
push eax
call fcn.0041eac0
pop ecx
pop ecx
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x150]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x154], eax
cmp dword [ebp - 0x154], 0
je 0x415859
mov eax, dword [ebp - 0x154]
shl eax, 1
push eax
call fcn.0041a65d
pop ecx
mov dword [ebp - 0x160], eax
push dword [ebp - 0x160]
push dword [ebp - 0x154]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x150]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x41584d
lea eax, [ebp - 0x154]
push eax
lea eax, [ebp - 0x164]
push eax
push 0x43a790
push dword [ebp - 0x160]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x41584d
cmp dword [ebp - 0x154], 4
jne 0x41584d
mov eax, dword [ebp - 0x164]
movzx eax, byte [eax + 1]
shl eax, 8
mov ecx, dword [ebp - 0x164]
movzx ecx, byte [ecx]
add eax, ecx
mov dword [ebp - 0x15c], eax
push dword [ebp - 0x160]
call fcn.0041efe8
pop ecx
push dword [ebp - 0x15c]
push 0x43a7ac
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0xc
push 0
push 0
push 0x1001
push dword [ebp - 0x15c]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov dword [ebp - 0x158], eax
push dword [ebp - 0x158]
call fcn.0041a65d
pop ecx
mov dword [ebp - 0x48], eax
push dword [ebp - 0x158]
push dword [ebp - 0x48]
push 0x1001
push dword [ebp - 0x15c]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x4158ca
push dword [ebp - 0x48]
push dword [0x43d8a4]
call fcn.0041a6f9
pop ecx
pop ecx
push dword [ebp - 0x48]
call fcn.0041efe8
pop ecx
jmp 0x415ada
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
movzx eax, word [ebp - 4]
push eax
movzx eax, word [ebp - 6]
push eax
movzx eax, word [ebp - 8]
push eax
push str._02d:_02d:_02d
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0x14
jmp 0x415ada
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
neg eax
sbb eax, eax
neg eax
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x44ecd2
jmp 0x415ada
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 0x170], eax
push dword [ebp - 0x170]
push 0x43a7c4
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0xc
push 0
push 0
push 0x1001
push dword [ebp - 0x170]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov dword [ebp - 0x16c], eax
push dword [ebp - 0x16c]
call fcn.0041a65d
pop ecx
mov dword [ebp - 0x168], eax
push dword [ebp - 0x16c]
push dword [ebp - 0x168]
push 0x1001
push dword [ebp - 0x170]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x4159be
push dword [ebp - 0x168]
push dword [0x43d8a4]
call fcn.0041a6f9
pop ecx
pop ecx
push dword [ebp - 0x168]
call fcn.0041efe8
pop ecx
jmp 0x415ada
movzx eax, word [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
mov dword [ebp - 0x18], 0x44e9c0
jmp 0x415ada
mov dword [ebp - 0x18], 0x44ead0
jmp 0x415ada
and dword [ebp - 0x174], 0
mov dword [ebp - 0x178], 1
jmp 0x415a16
mov eax, dword [ebp - 0x178]
inc eax
mov dword [ebp - 0x178], eax
movzx eax, word [ebp - 0xe]
cmp dword [ebp - 0x178], eax
jge 0x415aa9
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x1a0]
dec eax
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 0xb
ja case.0x415a55.3
mov eax, dword [ebp - 0x1a0]
movzx eax, byte [eax + 0x415c51]
jmp dword [eax*4 + 0x415c45]
mov eax, dword [ebp - 0x174]
add eax, 0x1f
mov dword [ebp - 0x174], eax
jmp 0x415aa4
mov eax, dword [ebp - 0x174]
add eax, 0x1c
mov dword [ebp - 0x174], eax
movzx eax, word [ebp - 0x10]
push eax
call fcn.00414977
pop ecx
add eax, dword [ebp - 0x174]
mov dword [ebp - 0x174], eax
jmp 0x415aa4
mov eax, dword [ebp - 0x174]
add eax, 0x1e
mov dword [ebp - 0x174], eax
jmp 0x415a09
movzx eax, word [ebp - 0xa]
add eax, dword [ebp - 0x174]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x174]
mov dword [eax + 8], ecx
jmp 0x415ada
movzx eax, word [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
jmp 0x415ada
mov dword [ebp - 0x18], str._unknown:
cmp dword [ebp + 0x10], 0
je 0x415b17
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
cmp eax, 3
jne 0x415b0c
mov eax, dword [ebp + 0xc]
mov word [eax], 8
mov eax, dword [ebp + 0xc]
push dword [eax + 8]
push 0x43a7d8
push dword [0x43d8a4]
call fcn.0041e9c2
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [eax + 8], ecx
jmp 0x415b3b
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
cmp eax, 8
jne 0x415b3b
push dword [ebp - 0x18]
call fcn.0041ea20
pop ecx
push eax
push dword [ebp - 0x18]
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
leave
ret