Function at 0x401c9a
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x328
push ebx
push esi
push edi
mov dword [ebp - 0x38], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x60], 0
mov eax, dword [str.____FLEXlm_v7.0d__liblmgr.a___Copyright__C__1988_1999_Globetrotter_Software__Inc.]
movsx eax, byte [eax]
mov dword [ebp - 0x4c], eax
cmp dword [ebp + 8], 0
je 0x401d4d
push 0x1d
mov eax, dword [ebp + 8]
push eax
call fcn.004040a0
add esp, 8
cmp eax, 0x9969
je 0x401d4d
mov eax, dword [ebp + 8]
cmp dword [eax], 0x67
je 0x401d4d
jmp 0x401d1b
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], 0xffffffd3
push 0
push 0xff
push 0
push 0
push 0xb2
push 0xffffffffffffffd3
mov eax, dword [ebp + 8]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, 0xffffffd3
jmp 0x4029ba
cmp dword [ebp + 8], 0
je 0x401d84
mov eax, dword [ebp + 8]
cmp dword [eax + 0x74], 0
je 0x401d84
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x74]
movsx eax, word [eax + 0x138]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x74]
movsx eax, word [eax + 0x13a]
mov dword [ebp - 0x3c], eax
cmp dword [0x476fd4], 0
je 0x401df5
call fcn.0040cf30
mov dword [0x476fe0], eax
cmp dword [0x476fe0], 0x40
jle 0x401db2
mov dword [0x476fe0], 0x3f
mov dword [0x476fd8], 0x20
mov eax, dword [0x476fe0]
cdq
idiv dword [0x476fd8]
mov dword [0x476fdc], eax
mov eax, dword [0x476fdc]
imul eax, dword [0x476fd8]
cmp eax, dword [0x476fe0]
jge 0x401deb
inc dword [0x476fdc]
mov dword [0x476fd4], 0
call fcn.004413ab
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x324]
mov dword [eax], 0
push 1
push 0x2f4
call fcn.004412ab
add esp, 8
mov dword [ebp - 0x44], eax
push 1
push 0x50
call fcn.004412ab
add esp, 8
mov dword [ebp - 0x48], eax
push 1
push 0x168
call fcn.004412ab
add esp, 8
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x4c], 0
jmp 0x401e4e
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 5
jge 0x401ea6
push 1
push 0x9c
call fcn.004412ab
add esp, 8
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
jne 0x401e79
jmp 0x401ea6
cmp dword [ebp - 0x54], 0
jne 0x401e89
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x60], 0
je 0x401e9b
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
mov dword [ecx], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
jmp 0x401e4b
cmp dword [ebp - 0x48], 0
je 0x401ed8
cmp dword [ebp - 0x44], 0
je 0x401ed8
cmp dword [ebp - 0x58], 0
je 0x401ed8
cmp dword [ebp - 0x5c], 0
je 0x401ed8
cmp dword [ebp + 0x14], 0
jne 0x401f10
cmp dword [ebp + 0x14], 0
jne 0x401ef1
mov eax, 0xffffffd6
jmp 0x4029ba
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x482c18
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov dword [eax + 0x14], 0xffffffd8
mov eax, 0xffffffd8
jmp 0x4029ba
cmp dword [ebp + 0x14], 0
je 0x401f22
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
cmp dword [ebp + 0x18], 0
je 0x401f76
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403e82
add esp, 4
mov eax, dword [ebp - 0x44]
or dword [eax + 0x1b8], 0x4000
push 0
mov eax, dword [ebp - 0x44]
add eax, 0x24c
push eax
call fcn.00441230
add esp, 8
mov dword [ebp - 0x328], eax
cmp dword [ebp - 0x328], 0
je 0x401f76
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x14]
jmp 0x4029ba
push 0x477048
mov eax, dword [ebp - 0x44]
push eax
call fcn.004030ff
add esp, 8
test eax, eax
je 0x401fe0
cmp dword [0x477d68], 0
jne 0x401fe0
call sub.KERNEL32.dll_GetCurrentProcessId
push eax
call fcn.00441224
add esp, 4
mov ecx, 0x3e8
cdq
idiv ecx
push edx
push str.flex_i.log
lea eax, [ebp - 0xe0]
push eax
call fcn.004411d2
add esp, 0xc
push 0x477068
lea eax, [ebp - 0xe0]
push eax
call fcn.004411bf
add esp, 8
mov dword [0x477d68], eax
mov dword [ebp - 0x174], 0x94
lea eax, [ebp - 0x174]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x164], 1
jne 0x40200e
mov dword [0x48ac0c], 1
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0xe4], eax
mov eax, dword [ebp - 0x44]
mov dword [eax], 0x66
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x70], eax
push 0xa
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0x44]
add eax, 0xc8
push eax
call fcn.00441090
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x74], eax
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x88], 0
push 0x94
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040c9f0
add esp, 8
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x184], eax
push 0x94
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040c9f0
add esp, 8
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x188], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1b4]
push eax
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040c8f0
add esp, 8
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x1b4], eax
mov eax, dword [ebp - 0x48]
mov word [eax], 0x65
mov eax, dword [ebp - 0x48]
mov dword [eax + 8], 1
mov eax, dword [ebp - 0x48]
mov dword [eax + 0xc], 0xffffffff
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x34], 1
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x38], 3
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x44], 0xa8c
mov eax, dword [ebp - 0x48]
mov dword [eax + 0x48], 0x1c20
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x14], 0x4d2
mov eax, dword [ebp - 0x58]
mov dword [eax + 0xc], 0x78
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x10], 0x3c
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x18], 5
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x1c], 0xa
mov eax, dword [ebp - 0x58]
mov word [eax + 0x20], 1
mov eax, dword [ebp - 0x58]
mov dword [eax + 0xcc], 0xffffffff
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x12c], 1
mov eax, dword [ebp - 0x58]
mov dword [eax + 0xd8], 0
mov eax, dword [ebp - 0x58]
mov dword [eax + 0xdc], 0
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
mov word [ecx + 0x138], ax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x58]
mov word [ecx + 0x13a], ax
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 2
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 4
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x400
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x2000
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x10
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x10000
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x20000
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x40000
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 0x80000
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x74]
and dword [eax + 0x148], 0xfffff7ff
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x74]
mov dword [eax + 0x14c], 0x66d8b337
push 0x47706c
mov eax, dword [ebp - 0x58]
add eax, 0x155
push eax
call fcn.00440fa0
add esp, 8
push 0x477074
mov eax, dword [ebp - 0x58]
add eax, 0x150
push eax
call fcn.00440fa0
add esp, 8
push 0x30
push 0
mov eax, dword [ebp - 0x58]
add eax, 0xfc
push eax
call fcn.00440740
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x130], 1
push str.FLEXLM_COMM_TRANSPORT
mov eax, dword [ebp - 0x44]
push eax
call fcn.004030ff
add esp, 8
mov dword [ebp - 0x308], eax
cmp dword [ebp - 0x308], 0
je 0x4023af
mov eax, dword [ebp - 0x308]
push eax
push 0x477094
call fcn.00440db0
add esp, 8
test eax, eax
je 0x4022e7
mov eax, dword [ebp - 0x308]
push eax
push 0x477098
call fcn.00440db0
add esp, 8
test eax, eax
je 0x4022e7
mov eax, dword [ebp - 0x308]
push eax
push 0x4770a0
call fcn.00440db0
add esp, 8
test eax, eax
je 0x4022e7
mov eax, dword [ebp - 0x308]
push eax
push 0x4770a4
call fcn.00440db0
add esp, 8
test eax, eax
jne 0x402306
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x134], 1
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x12c], 2
jmp 0x4023af
mov eax, dword [ebp - 0x308]
push eax
push 0x4770a8
call fcn.00440db0
add esp, 8
test eax, eax
je 0x40233e
mov eax, dword [ebp - 0x308]
push eax
push 0x4770ac
call fcn.00440db0
add esp, 8
test eax, eax
jne 0x40235d
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x134], 1
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x12c], 1
jmp 0x4023af
mov eax, dword [ebp - 0x308]
push eax
push 0x4770b4
call fcn.00440db0
add esp, 8
test eax, eax
je 0x402395
mov eax, dword [ebp - 0x308]
push eax
push 0x4770b8
call fcn.00440db0
add esp, 8
test eax, eax
jne 0x4023af
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x134], 1
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x12c], 6
mov dword [ebp - 0x310], 0x15180
lea eax, [ebp - 0x310]
push eax
call fcn.00440e34
add esp, 4
mov dword [ebp - 0x314], eax
mov eax, dword [ebp - 0x314]
mov eax, dword [eax + 0x14]
sub eax, 0x46
mov ecx, eax
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8]
shl eax, 3
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
mov ecx, dword [ebp - 0x314]
mov ecx, dword [ecx + 0x1c]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x314]
add eax, dword [ecx + 8]
mov dword [ebp - 0x30c], eax
cmp dword [ebp - 0x30c], 0x32
jg 0x402423
cmp dword [ebp - 0x30c], 0
jge 0x40245f
jmp 0x40242d
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffb9
push 0
push 0xff
push 0
push 0
push 0xb6
push 0xffffffffffffffb9
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, 0xffffffb9
jmp 0x4029ba
cmp dword [ebp + 0x10], 0
je 0x40270d
mov eax, dword [ebp + 0x10]
movsx eax, word [eax]
cmp eax, 1
jne 0x4024d0
push 0xc
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x98
push eax
call fcn.00440a70
add esp, 0xc
jmp 0x402499
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffd5
push 0
push 0xff
push 0
push 0
push 0xb7
push 0xffffffffffffffd5
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, 0xffffffd5
jmp 0x4029ba
mov eax, dword [ebp + 0x10]
movsx eax, word [eax]
cmp eax, 2
je 0x4024ee
mov eax, dword [ebp + 0x10]
movsx eax, word [eax]
cmp eax, 3
jne 0x40252f
jmp 0x4024f8
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffb8
push 0
push 0xff
push 0
push 0
push 0xb8
push 0xffffffffffffffb8
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, 0xffffffb8
jmp 0x4029ba
mov eax, dword [ebp + 0x10]
movsx eax, word [eax]
cmp eax, 4
jne 0x4026cc
lea eax, [ebp - 0x318]
push eax
push 0x20
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040be4b
add esp, 0xc
lea eax, [ebp - 0x31c]
push eax
push 0x21
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040be4b
add esp, 0xc
mov eax, dword [ebp + 0x10]
movsx eax, word [eax + 0x1c]
movsx ecx, word [ebp - 0x318]
cmp eax, ecx
jne 0x402594
mov eax, dword [ebp + 0x10]
movsx eax, word [eax + 0x1e]
movsx ecx, word [ebp - 0x31c]
cmp eax, ecx
je 0x4025c6
jmp 0x40259e
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffbe
push 0
push 0xff
push 0
push 0
push 0xeb
push 0xffffffffffffffbe
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
push 0x30
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x44]
add eax, 0x98
push eax
call fcn.00440a70
add esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x44]
push eax
call fcn.004040c2
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x74]
test byte [eax + 0x149], 0x80
jne 0x4026b7
mov eax, dword [ebp - 0x44]
movsx eax, byte [eax + 0xc8]
movsx ecx, byte [0x4770bc]
cmp eax, ecx
jne 0x40263b
push 0x4770c4
mov eax, dword [ebp - 0x44]
add eax, 0xc8
push eax
call fcn.00440db0
add esp, 8
test eax, eax
je 0x4026b7
push 0x30
mov eax, dword [ebp - 0x44]
add eax, 0x98
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00440a70
add esp, 0xc
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x44]
add eax, 0xc8
push eax
mov eax, dword [ebp - 0x44]
push eax
call fcn.00408b4d
add esp, 0xc
cmp dword [ebp - 0x30], 0x87654321
je 0x402685
cmp dword [ebp - 0x2c], 0x12345678
jne 0x4026b7
jmp 0x40268f
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffa5
push 0
push 0xff
push 0
push 0
push 0x13e
push 0xffffffffffffffa5
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
push 0x30
push 0
lea eax, [ebp - 0x34]
push eax
call fcn.00440740
add esp, 0xc
jmp 0x402708
jmp 0x4026d6
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffbf
push 0
push 0xff
push 0
push 0
push 0xba
push 0xffffffffffffffbf
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, 0xffffffbf
jmp 0x4029ba
jmp 0x40273f
jmp 0x402717
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x14], 0xffffffd5
push 0
push 0xff
push 0
push 0
push 0xbb
push 0xffffffffffffffd5
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x38], 0xffffffce
je 0x4027eb
cmp dword [ebp - 0x38], 0xffffffd0
je 0x4027eb
cmp dword [ebp - 0x38], 0xffffffd4
je 0x4027eb
cmp dword [ebp - 0x38], 0xffffffd5
je 0x4027eb
push 0x16
mov eax, dword [ebp - 0x44]
push eax
call fcn.004040a0
add esp, 8
cmp eax, 0x1204
je 0x4027af
mov eax, dword [ebp - 0x58]
mov dword [eax + 0xc], 0xffffffff
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x10], 0xffffffff
push 0x14
mov eax, dword [ebp - 0x44]
push eax
call fcn.004040a0
add esp, 8
cmp eax, 0x2655
jne 0x4027e1
push 0xf
mov eax, dword [ebp - 0x44]
push eax
call fcn.004040a0
add esp, 8
cmp eax, 0xfeef
je 0x4027eb
mov eax, dword [ebp - 0x58]
or dword [eax + 0x148], 1
mov eax, dword [ebp + 0x10]
add eax, 0x22
push eax
push 0x41
mov eax, dword [ebp - 0x44]
push eax
call fcn.0040464b
add esp, 0xc
cmp dword [0x476fe4], 0xffffffff
jne 0x402823
push str.FLEXLM_BATCH
mov eax, dword [ebp - 0x44]
push eax
call fcn.004030ff
add esp, 8
mov dword [0x476fe4], eax
cmp dword [0x476fe8], 0xffffffff
jne 0x402846
push str.FLEXLM_NO_CKOUT_INSTALL_LIC
mov eax, dword [ebp - 0x44]
push eax
call fcn.004030ff
add esp, 8
mov dword [0x476fe8], eax
cmp dword [0x476fe4], 0
je 0x40286d
mov eax, dword [ebp - 0x58]
and dword [eax + 0x148], 0xffffdfff
mov eax, dword [ebp - 0x58]
and dword [eax + 0x148], 0xfffdffff
cmp dword [0x476fe8], 0
je 0x402887
mov eax, dword [ebp - 0x58]
and dword [eax + 0x148], 0xfffeffff
push 0x1c
mov eax, dword [ebp - 0x44]
push eax
call fcn.004040a0
add esp, 8
cmp eax, 0x336
je 0x4028aa
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x18], 0xffffffff
mov eax, dword [ebp - 0x58]
mov word [eax + 0x140], 0xffff
mov eax, dword [ebp - 0x44]
cmp dword [eax + 0x14], 0
je 0x4028dc
cmp dword [ebp - 0x38], 0xfffffff1
je 0x4028d7
cmp dword [ebp - 0x38], 0xffffffa3
jne 0x4028dc
jmp 0x4028e5
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x14], eax
push 0
push 0xff
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x44]
push eax
call fcn.00403cc0
add esp, 0x1c
cmp dword [ebp - 0x44], 0
je 0x402956
cmp dword [ebp + 8], 0
je 0x40294d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x6c], 0
je 0x402933
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x6c]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x68], eax
jmp 0x402956
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x68], eax
mov eax, dword [ebp - 0x44]
mov dword [eax + 0x2f0], 0x6981
cmp dword [0x476fec], 0xffffffff
jne 0x4029af
push str.FLEXLM_PORT_END
mov eax, dword [ebp - 0x44]
push eax
call fcn.004030ff
add esp, 8
mov dword [0x476fec], eax
cmp dword [0x476fec], 0
je 0x4029af
mov eax, dword [ebp - 0x44]
add eax, 0x2f0
push eax
push 0x477108
mov eax, dword [0x476fec]
push eax
call fcn.00440a34
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x14]
jmp 0x4029ba
pop edi
pop esi
pop ebx
leave
ret