Function at 0x40de20
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4d8
mov eax, dword [0x4efa64]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov dword [ebp - 0x4cc], str.Reprise_License_Manager__RLM__v15.2__Copyright__C__2006_2023__Reprise_Software__Inc.
mov dword [ebp - 0x4d0], str.x86_w4
mov eax, dword [ebp - 0x4cc]
mov dword [ebp - 0x4b4], eax
call fcn.0040e7e0
push 0x1418
push 0
call fcn.004166d0
add esp, 8
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 0
je 0x40e7c0
push 0x1418
push 0
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.00465af0
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x40deaa
mov edx, dword [ebp + 8]
push edx
call fcn.004822f0
add esp, 4
cmp eax, 0x800
ja 0x40dec3
cmp dword [ebp + 0x10], 0
je 0x40df03
mov eax, dword [ebp + 0x10]
push eax
call fcn.004822f0
add esp, 4
cmp eax, 0x800
jbe 0x40df03
push 0x1418
push 0
call fcn.004166d0
add esp, 8
mov dword [ebp - 0x4a8], eax
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x21c], 0xffffff85
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x238], 0xffffffe0
mov eax, dword [ebp - 0x4a8]
jmp 0x40e7c6
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0x4a8]
mov dword [eax], ecx
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x13f4], 0x2c03f
cmp dword [ebp + 0x30], 0
je 0x40e151
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx + 0x280]
mov dword [eax + 0x280], edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx + 0xb30]
mov dword [eax + 0xb30], edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp + 0x30]
mov edx, dword [ecx + 0xb34]
mov dword [eax + 0xb34], edx
mov eax, dword [ebp + 0x30]
add eax, 0x288
push eax
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x288
push ecx
call fcn.004789e0
add esp, 8
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x27c]
mov dword [edx + 0x27c], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x2d0]
mov dword [edx + 0x2d0], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x2d4]
mov dword [edx + 0x2d4], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x13f8]
mov dword [edx + 0x13f8], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb38]
mov dword [edx + 0xb38], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb3c]
mov dword [edx + 0xb3c], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb44]
mov dword [edx + 0xb44], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb48]
mov dword [edx + 0xb48], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb4c]
mov dword [edx + 0xb4c], ecx
mov edx, 4
imul eax, edx, 0
mov ecx, 4
imul edx, ecx, 0
mov ecx, dword [ebp - 0x4a8]
mov esi, dword [ebp + 0x30]
mov eax, dword [esi + eax + 0x1400]
mov dword [ecx + edx + 0x1400], eax
mov ecx, 4
shl ecx, 0
mov edx, 4
shl edx, 0
mov eax, dword [ebp - 0x4a8]
mov esi, dword [ebp + 0x30]
mov ecx, dword [esi + ecx + 0x1400]
mov dword [eax + edx + 0x1400], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0xb40]
mov dword [edx + 0xb40], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov ecx, dword [eax + 0x2cc]
mov dword [edx + 0x2cc], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x30]
mov cl, byte [eax + 0x1415]
mov byte [edx + 0x1415], cl
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 0x30]
movsx edx, byte [ecx + eax + 0x2b5]
test edx, edx
je 0x40e118
push 0xa
mov eax, dword [ebp + 0x30]
add eax, 0x2b5
push eax
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x2b5
push ecx
call fcn.0041a010
add esp, 0xc
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 0x30]
movsx edx, byte [ecx + eax + 0x2c0]
test edx, edx
je 0x40e14f
push 0xa
mov eax, dword [ebp + 0x30]
add eax, 0x2c0
push eax
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x2c0
push ecx
call fcn.0041a010
add esp, 0xc
jmp 0x40e16d
mov edx, dword [ebp - 0x4a8]
push edx
call fcn.0043f9e0
add esp, 4
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 8], 0xf
cmp dword [ebp + 0x38], 0
je 0x40e180
mov ecx, dword [ebp - 0x4a8]
mov byte [ecx + 0x1415], 1
mov edx, dword [ebp - 0x4a8]
cmp dword [edx + 0x13f8], 0
jne 0x40e19f
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x13f8], 0x4de530
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0xc], 2
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x10], 1
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x4a8]
movsx eax, byte [edx + ecx + 0x308]
test eax, eax
jne 0x40e1f5
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x288
push ecx
mov edx, dword [ebp - 0x4a8]
add edx, 0x308
push edx
call fcn.004789e0
add esp, 8
cmp dword [ebp + 0x18], 0
je 0x40e214
mov eax, dword [ebp + 0x18]
push eax
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x288
push ecx
call fcn.004789e0
add esp, 8
push 0x14
mov edx, dword [ebp - 0x4d0]
push edx
mov eax, dword [ebp - 0x4a8]
add eax, 0x14
push eax
call fcn.0041a010
add esp, 0xc
call fcn.00413f80
cdq
mov ecx, 0x3c
idiv ecx
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x4a8]
cmp dword [eax + 0x2c], 0
jge 0x40e266
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ecx + 0x2c]
add edx, 0x18
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x2c], edx
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x244], 1
push 0x9c
push 0
lea edx, [ebp - 0x4a4]
push edx
call fcn.00465af0
add esp, 0xc
mov dword [ebp - 0x4a4], 0x9c
lea eax, [ebp - 0x4a4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0x49c]
push ecx
mov edx, dword [ebp - 0x4a0]
push edx
push str._d._d
mov eax, dword [ebp - 0x4a8]
add eax, 0x1ff
push eax
call fcn.00404080
add esp, 0x10
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40e2f4
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ecx + 0x218]
or edx, 1
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x218], edx
movzx ecx, word [ebp - 0x40c]
and ecx, 0x10
je 0x40e32a
movzx edx, word [ebp - 0x40c]
and edx, 0x100
jne 0x40e32a
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0x218]
or ecx, 4
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x218], ecx
mov eax, dword [ebp + 0x34]
push eax
mov ecx, dword [ebp + 0x2c]
push ecx
mov edx, dword [ebp - 0x4a8]
push edx
call fcn.0040e840
add esp, 0xc
mov dword [ebp - 0x4d4], eax
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 8], 0xf
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ebp + 8]
mov dword [ecx + 0xb98], edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xb9c], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x24]
mov dword [edx + 0xba0], eax
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ebp + 0x28]
mov dword [ecx + 0xba4], edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp + 0x20]
mov dword [eax + 0x13b4], ecx
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp + 0x10]
mov dword [edx + 0xba8], eax
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ebp + 0x14]
mov dword [ecx + 0x13b0], edx
push str.RLM_COMM_TIMEOUT
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4b8], eax
cmp dword [ebp - 0x4b8], 0
je 0x40e3f6
mov eax, dword [ebp - 0x4b8]
push eax
call fcn.00479f10
add esp, 4
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x268], eax
jmp 0x40e406
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x268], 0x1388
push 0x4de564
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4bc], eax
cmp dword [ebp - 0x4bc], 0
je 0x40e43f
mov eax, dword [ebp - 0x4bc]
push eax
call fcn.00479f10
add esp, 4
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x274], eax
jmp 0x40e44f
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x274], 0xa
mov eax, dword [ebp - 0x4a8]
cmp dword [eax + 0x274], 0
jge 0x40e488
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ecx + 0x274]
neg edx
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x274], edx
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x278], 1
push str.RLM_TCP_LISTEN_BACKLOG
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4c0], eax
cmp dword [ebp - 0x4c0], 0
je 0x40e4c1
mov edx, dword [ebp - 0x4c0]
push edx
call fcn.00479f10
add esp, 4
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x284], eax
jmp 0x40e4d1
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x284], 5
mov eax, dword [ebp - 0x4a8]
cmp dword [eax + 0x284], 5
jge 0x40e4f0
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x284], 5
push 0x4de590
call fcn.00482fd0
add esp, 4
test eax, eax
je 0x40e511
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x250], 1
cmp dword [ebp + 0x1c], 0
je 0x40e538
push 0x4de59c
call fcn.00482fd0
add esp, 4
test eax, eax
je 0x40e538
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x260], 1
push 0x4de5b0
call fcn.00482fd0
add esp, 4
test eax, eax
je 0x40e559
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx + 0x24c], 1
push 0x4de5b8
call fcn.00482fd0
add esp, 4
test eax, eax
je 0x40e57a
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x258], 1
push str.LMTRACE
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4b4], eax
cmp dword [ebp - 0x4b4], 0
je 0x40e5c6
mov eax, dword [ebp - 0x4a8]
mov dword [eax + 0x254], 1
push 0x4de5dc
mov ecx, dword [ebp - 0x4b4]
push ecx
call fcn.00413c90
add esp, 8
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x25c], eax
push str.RLM_LICENSE_PASSWORD
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x4ac], 0
je 0x40e600
push 0x20
mov eax, dword [ebp - 0x4ac]
push eax
mov ecx, dword [ebp - 0x4a8]
add ecx, 0xb7
push ecx
call fcn.0041a010
add esp, 0xc
push str.RLMAUTH
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4ac], eax
cmp dword [ebp - 0x4ac], 0
je 0x40e6ba
push 0x400
mov edx, dword [ebp - 0x4ac]
push edx
lea eax, [ebp - 0x408]
push eax
call fcn.0041a010
add esp, 0xc
lea ecx, [ebp - 0x408]
mov dword [ebp - 0x4ac], ecx
push 0x3a
mov edx, dword [ebp - 0x4ac]
push edx
call fcn.004661d0
add esp, 8
mov dword [ebp - 0x4b0], eax
cmp dword [ebp - 0x4b0], 0
je 0x40e69c
mov eax, dword [ebp - 0x4b0]
mov byte [eax], 0
mov ecx, dword [ebp - 0x4b0]
add ecx, 1
mov dword [ebp - 0x4b0], ecx
push 0xa
mov edx, dword [ebp - 0x4b0]
push edx
mov eax, dword [ebp - 0x4a8]
add eax, 0x171
push eax
call fcn.0041a010
add esp, 0xc
push 0xa
mov ecx, dword [ebp - 0x4ac]
push ecx
mov edx, dword [ebp - 0x4a8]
add edx, 0x166
push edx
call fcn.0041a010
add esp, 0xc
push 0x20
mov eax, dword [ebp - 0x4a8]
add eax, 0x34
push eax
call fcn.00413fc0
add esp, 8
push 0x40
mov ecx, dword [ebp - 0x4a8]
add ecx, 0x55
push ecx
call fcn.00414160
add esp, 8
mov edx, dword [ebp - 0x4a8]
push edx
call fcn.0040fa60
add esp, 4
mov eax, dword [ebp - 0x4a8]
push eax
call fcn.0040fa70
add esp, 4
cmp dword [ebp - 0x4d4], 0
jne 0x40e71c
mov ecx, dword [ebp + 0x24]
push ecx
mov edx, dword [ebp - 0x4a8]
push edx
call fcn.0040ef40
add esp, 8
push str.RLM_DIAGNOSTICS
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4c4], eax
push str.RLM_DEBUG
call fcn.00482fd0
add esp, 4
mov dword [ebp - 0x4c8], eax
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax + 0x258]
mov dword [ebp - 0x4d8], ecx
mov edx, dword [ebp - 0x4a8]
mov dword [edx + 0x258], 1
cmp dword [ebp - 0x4c4], 0
je 0x40e78f
mov eax, dword [ebp + 0x24]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x4c4]
push eax
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.0040f350
add esp, 0x14
cmp dword [ebp - 0x4c8], 0
je 0x40e7ae
mov edx, dword [ebp - 0x4c8]
push edx
mov eax, dword [ebp - 0x4a8]
push eax
call fcn.0043e8e0
add esp, 8
mov ecx, dword [ebp - 0x4a8]
mov edx, dword [ebp - 0x4d8]
mov dword [ecx + 0x258], edx
mov eax, dword [ebp - 0x4a8]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00464bf6
mov esp, ebp
pop ebp
ret