Function at 0x41fd80
Capabilities:
Contain obfuscated stackstrings
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e8a3d
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x534068]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
xor edi, edi
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x1c4], esi
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], edi
mov ecx, str.updater_type
call fcn.00402870
lea ecx, [esi + 0x30]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x1e0]
mov dword [ebp - 0x1e4], edx
call fcn.00405530
mov byte [ebp - 4], 0
lea eax, [ebp - 0x1e4]
push eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x138], 1
call fcn.004097c0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x174]
call fcn.00409090
mov esi, 1
mov dword [ebp - 0x138], esi
and esi, 0xfffffffe
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e4]
call fcn.00409080
mov dword [ebp - 4], 3
mov ecx, str.updater_auto
call fcn.00402870
mov ecx, dword [ebp - 0x1c4]
mov edx, eax
add ecx, 0x48
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 3
lea eax, [ebp - 0x190]
or esi, 2
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 5
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffffd
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x1c4]
add eax, 0x60
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x41ff9c
mov dword [ebp - 4], 6
mov ecx, str.client_ver
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 6
lea eax, [ebp - 0x190]
or esi, 4
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 8
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffffb
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x1c4]
add eax, 0x78
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420045
mov dword [ebp - 4], 9
mov ecx, str.main_exe_ver
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 9
lea eax, [ebp - 0x190]
or esi, 8
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffff7
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov ecx, dword [ebp - 0x144]
call fcn.00405520
test al, al
jne 0x4200db
mov dword [ebp - 4], 0xc
mov ecx, dword [ebp - 0x144]
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], str.main_ver
call fcn.00405530
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x190]
or esi, 0x10
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xffffffef
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x18
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x42017c
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x13c]
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], str.build_ver
call fcn.00405530
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x190]
or esi, 0x20
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xffffffdf
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x30
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420225
mov dword [ebp - 4], 0x12
mov ecx, str.action_type
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x190]
or esi, 0x40
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xffffffbf
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x48
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x4202d4
mov dword [ebp - 4], 0x15
mov ecx, str.special_ver
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 0x15
lea eax, [ebp - 0x190]
or esi, 0x80
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xffffff7f
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x60
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420383
mov dword [ebp - 4], 0x18
mov ecx, str.special_id
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], edx
call fcn.00405530
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x190]
or esi, 0x100
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x18
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffeff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x78
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x42042a
mov dword [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x13c]
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], str.os_ver
call fcn.00405530
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x190]
or esi, 0x200
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffdff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x90
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x4204d3
mov dword [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x13c]
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x190], str.sp_ver
call fcn.00405530
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x190]
or esi, 0x400
lea ecx, [ebp - 0x174]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x174]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x174]
call fcn.00409090
and esi, 0xfffffbff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x190]
call fcn.00409080
push 0x118
lea eax, [ebp - 0x130]
mov dword [ebp - 0x134], 0x11c
push 0
push eax
call fcn.004bf410
add esp, 0xc
lea ecx, [ebp - 0x134]
call fcn.0046ec60
test al, al
je 0x420b7d
mov eax, dword [ebp - 0x130]
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x800
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x22
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x190], str.os_major_version
call fcn.00402870
push eax
lea ecx, [ebp - 0x18c]
call fcn.00404060
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x190]
or esi, 0x1000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xffffefff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x190]
call fcn.00409080
and esi, 0xfffff7ff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 4], 0x25
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x2000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x26
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x208], str.os_minor_version
call fcn.00402870
push eax
lea ecx, [ebp - 0x204]
call fcn.00404060
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x208]
or esi, 0x4000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xffffbfff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x208]
call fcn.00409080
and esi, 0xffffdfff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
mov eax, dword [ebp - 0x128]
mov dword [ebp - 4], 0x29
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x8000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x2a
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x224], str.os_build_number
call fcn.00402870
push eax
lea ecx, [ebp - 0x220]
call fcn.00404060
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x224]
or esi, 0x10000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x2c
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xfffeffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x224]
call fcn.00409080
and esi, 0xffff7fff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
mov eax, dword [ebp - 0x124]
mov dword [ebp - 4], 0x2d
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x20000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x2e
mov ecx, eax
call fcn.00402870
mov ecx, str.os_platform_id
mov edx, eax
call fcn.00402870
mov ecx, eax
call fcn.00402870
mov dword [ebp - 0x240], eax
mov ecx, edx
call fcn.00402870
push eax
lea ecx, [ebp - 0x23c]
call fcn.00404060
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x240]
or esi, 0x40000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xfffbffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x240]
call fcn.00409080
and esi, 0xfffdffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
movzx eax, word [ebp - 0x20]
mov dword [ebp - 4], 0x31
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x80000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x32
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x25c], str.os_service_pack_major
call fcn.00402870
push eax
lea ecx, [ebp - 0x258]
call fcn.00404060
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0x25c]
or esi, 0x100000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x34
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xffefffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x25c]
call fcn.00409080
and esi, 0xfff7ffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
movzx eax, word [ebp - 0x1e]
mov dword [ebp - 4], 0x35
push 0
push eax
lea ecx, [ebp - 0x1e0]
call fcn.0046ddf0
or esi, 0x200000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x36
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x278], str.os_service_pack_minor
call fcn.00402870
push eax
lea ecx, [ebp - 0x274]
call fcn.00404060
mov byte [ebp - 4], 0x36
lea eax, [ebp - 0x278]
or esi, 0x400000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xffbfffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x278]
call fcn.00409080
and esi, 0xffdfffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
movzx eax, word [ebp - 0x1c]
mov dword [ebp - 4], 0x39
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x800000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x3a
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x294], str.os_suite_mask
call fcn.00402870
push eax
lea ecx, [ebp - 0x290]
call fcn.00404060
mov byte [ebp - 4], 0x3a
lea eax, [ebp - 0x294]
or esi, 0x1000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xfeffffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x39
lea ecx, [ebp - 0x294]
call fcn.00409080
and esi, 0xff7fffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
movzx eax, byte [ebp - 0x1a]
mov dword [ebp - 4], 0x3d
lea ecx, [ebp - 0x1e0]
push 0
push eax
call fcn.0046ddf0
or esi, 0x2000000
add esp, 8
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x3e
mov ecx, eax
call fcn.00402870
mov ecx, eax
mov dword [ebp - 0x160], str.os_product_type
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
call fcn.00404060
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0x160]
or esi, 0x4000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x40
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x3e
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xfbffffff
mov dword [ebp - 0x138], esi
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x160]
call fcn.00409080
and esi, 0xfdffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1e0]
call fcn.004027f0
mov eax, dword [ebp - 0x144]
add eax, 0xa8
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420c26
mov dword [ebp - 4], 0x41
mov ecx, dword [ebp - 0x13c]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.os_bits
call fcn.00405530
mov byte [ebp - 4], 0x41
lea eax, [ebp - 0x160]
or esi, 0x8000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x43
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xf7ffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0xc0
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420ccf
mov dword [ebp - 4], 0x44
mov ecx, dword [ebp - 0x13c]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.local_acp
call fcn.00405530
mov byte [ebp - 4], 0x44
lea eax, [ebp - 0x160]
or esi, 0x10000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x44
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xefffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0xd8
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420d80
mov dword [ebp - 4], 0x47
mov ecx, str.install_days
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], edx
call fcn.00405530
mov byte [ebp - 4], 0x47
lea eax, [ebp - 0x160]
or esi, 0x20000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xdfffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0xf0
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420e31
mov dword [ebp - 4], 0x4a
mov ecx, str.active_days
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], edx
call fcn.00405530
mov byte [ebp - 4], 0x4a
lea eax, [ebp - 0x160]
or esi, 0x40000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x4c
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x4a
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0xbfffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
mov eax, dword [ebp - 0x144]
add eax, 0x120
mov ecx, eax
mov dword [ebp - 0x13c], eax
call fcn.00405520
test al, al
jne 0x420ee4
mov dword [ebp - 4], 0x4d
mov ecx, str.last_file_flag
call fcn.00402870
mov ecx, dword [ebp - 0x13c]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], edx
call fcn.00405530
mov byte [ebp - 4], 0x4d
lea eax, [ebp - 0x160]
or esi, 0x80000000
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x138], esi
call fcn.004097c0
mov byte [ebp - 4], 0x4f
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x4d
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and esi, 0x7fffffff
mov dword [ebp - 0x138], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
jmp 0x420f4c
mov ecx, str.last_file_flag
mov dword [ebp - 0x13c], 0x50bf28
call fcn.00402870
mov dword [ebp - 0x1c8], eax
lea ecx, [ebp - 0x1ec]
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x1c8]
push eax
call fcn.00409d30
mov eax, ecx
lea ecx, [ebp - 0x1c0]
push eax
call fcn.00409850
mov dword [ebp - 4], 0x50
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c0]
call fcn.00409090
mov esi, dword [ebp - 0x144]
lea ecx, [esi + 0x108]
call fcn.00405520
test al, al
jne 0x420ff4
mov dword [ebp - 4], 0x51
lea ecx, [esi + 0x108]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.mem_size
call fcn.00405530
mov byte [ebp - 4], 0x51
lea eax, [ebp - 0x160]
push eax
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x140], 1
call fcn.004097c0
mov byte [ebp - 4], 0x53
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x51
lea ecx, [ebp - 0x1c0]
call fcn.00409090
mov edi, 1
mov dword [ebp - 0x140], edi
and edi, 0xfffffffe
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x138]
call fcn.00405520
test al, al
jne 0x42108a
mov dword [ebp - 4], 0x54
lea ecx, [esi + 0x138]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.uuid
call fcn.00405530
mov byte [ebp - 4], 0x54
lea eax, [ebp - 0x160]
or edi, 2
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x56
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xfffffffd
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x150]
call fcn.00405520
test al, al
jne 0x421120
mov dword [ebp - 4], 0x57
lea ecx, [esi + 0x150]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], 0x50cb5c
call fcn.00405530
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0x160]
or edi, 4
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x59
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x57
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xfffffffb
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x168]
call fcn.00405520
test al, al
jne 0x4211be
mov dword [ebp - 4], 0x5a
mov ecx, str.competitors
call fcn.00402870
lea ecx, [esi + 0x168]
mov edx, eax
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], edx
call fcn.00405530
mov byte [ebp - 4], 0x5a
lea eax, [ebp - 0x160]
or edi, 8
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x5c
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x5a
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xfffffff7
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x180]
call fcn.00405520
test al, al
jne 0x421254
mov dword [ebp - 4], 0x5d
lea ecx, [esi + 0x180]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.has_uac
call fcn.00405530
mov byte [ebp - 4], 0x5d
lea eax, [ebp - 0x160]
or edi, 0x10
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x5f
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x5d
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xffffffef
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x210]
call fcn.00405520
test al, al
jne 0x4212ea
mov dword [ebp - 4], 0x60
lea ecx, [esi + 0x210]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.is_admin
call fcn.00405530
mov byte [ebp - 4], 0x60
lea eax, [ebp - 0x160]
or edi, 0x20
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x62
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x60
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xffffffdf
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x1e0]
call fcn.00405520
test al, al
jne 0x421380
mov dword [ebp - 4], 0x63
lea ecx, [esi + 0x1e0]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.net_bar
call fcn.00405530
mov byte [ebp - 4], 0x63
lea eax, [ebp - 0x160]
or edi, 0x40
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x65
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x63
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xffffffbf
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
lea ecx, [esi + 0x1f8]
call fcn.00405520
test al, al
jne 0x42141c
mov dword [ebp - 4], 0x66
lea ecx, [esi + 0x1f8]
call fcn.00402870
push eax
lea ecx, [ebp - 0x15c]
mov dword [ebp - 0x160], str.domain
call fcn.00405530
mov byte [ebp - 4], 0x66
lea eax, [ebp - 0x160]
or edi, 0x80
lea ecx, [ebp - 0x1c0]
push eax
mov dword [ebp - 0x140], edi
call fcn.004097c0
mov byte [ebp - 4], 0x68
lea eax, [ebp - 0x1c0]
push eax
mov ecx, ebx
call fcn.004094e0
mov byte [ebp - 4], 0x66
lea ecx, [ebp - 0x1c0]
call fcn.00409090
and edi, 0xffffff7f
mov dword [ebp - 0x140], edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x160]
call fcn.00409080
mov ecx, dword [ebp - 0x1c4]
add ecx, 0x90
call fcn.00402870
mov edx, dword [eax]
call fcn.00406320
mov esi, dword [eax]
cmp edx, esi
je 0x421451
mov ecx, ebx
call fcn.00406320
push dword [ebp - 0x1c8]
push esi
mov eax, dword [eax]
push edx
push eax
call fcn.00421f70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004bc969
mov esp, ebp
pop ebp
ret 0xc