Function at 0x401000
Capabilities:
Allocate thread local storage

Disassembly:
push 0x98
push 0
push 0x40f6e4
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleW
mov dword [0x40f6e8], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x40f6e4], eax
call fcn.0040b490
call fcn.00409ac0
call fcn.00409591
call fcn.0040952a
call fcn.004094ef
call fcn.00409466
call fcn.00408a68
call fcn.004088d2
call fcn.004072d2
call fcn.004058b5
call fcn.004054fd
call fcn.004053e0
call fcn.00405226
call fcn.00404d20
push dword [0x40f76c]
call fcn.0040551c
push 7
push 0x40e604
lea eax, [0x40f76c]
push eax
push 8
call fcn.0040546b
push 0x40e120
push 0
call sub.USER32.DLL_FindWindowW
mov dword [0x40f6f0], eax
cmp dword [0x40f6f0], 0
je 0x4010e8
push 9
push dword [0x40f6f0]
call sub.USER32.DLL_ShowWindow
push dword [0x40f6f0]
call sub.USER32.DLL_SetForegroundWindow
jmp 0x4016b8
mov eax, dword [0x40fe28]
push eax
push eax
mov eax, dword [0x40fe28]
push eax
push eax
call fcn.00405255
mov edx, dword [0x40e620]
add dword [esp], edx
call fcn.0040969d
push 0x40f6f4
call fcn.0040b510
mov eax, dword [0x40fe28]
push eax
push eax
push dword [0x40fe28]
call fcn.004053a0
mov edx, dword [0x40e620]
add dword [esp], edx
call fcn.00401915
push 0x40f6f8
call fcn.0040b510
mov edx, dword [0x40f6f4]
push dword [0x40fe28]
call fcn.0040b590
mov edx, str.mpHtml.ini
call fcn.0040b590
push 0x40f6fc
call fcn.0040b510
mov edx, dword [0x40f6fc]
push dword [0x40fe28]
call fcn.0040b590
lea ebp, [0x40f758]
lea eax, [ebp]
push eax
call fcn.0040b510
push 0
call fcn.004022e6
lea ebp, [0x40f758]
mov edx, str.Template
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40fe28]
push dword [0x40f6f4]
push str.Directory
push 0
call fcn.00401b7d
push 0x40f700
call fcn.0040b510
mov eax, dword [0x40fe28]
push eax
push eax
push 1
push dword [0x40f700]
call fcn.00404050
add dword [0x40fe28], 2
mov edx, 0x40e0dc
pop ecx
mov dword [0x40fe28], ecx
add ecx, dword [0x40e620]
call fcn.0040b5f0
jne 0x401220
mov edx, dword [0x40f700]
push dword [0x40fe28]
call fcn.0040b590
mov edx, 0x40e0dc
call fcn.0040b590
push 0x40f700
call fcn.0040b510
push dword [0x40fe28]
push 0x40e010
push str.Last
push 0
call fcn.00401b7d
add dword [0x40fe28], 2
push 0x40f704
call fcn.0040b510
lea ebp, [0x40f758]
mov edx, str.Files
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40fe28]
push 0x40e010
push str.Product
push 0
call fcn.00401b7d
push 0x40f708
call fcn.0040b510
push dword [0x40f6f8]
mov edx, 0x40e010
pop ecx
call fcn.0040b5f0
je 0x4012b9
push dword [0x40fe28]
push 0x40e010
push str.Source
push 0
call fcn.00401b7d
push 0x40f6f8
call fcn.0040b510
lea ebp, [0x40f758]
mov edx, str.Settings
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40fe28]
push 0x40e0d8
push str.TagStartSymbol
push 0
call fcn.00401b7d
push 0x40f70c
call fcn.0040b510
push dword [0x40fe28]
push 0x40e0e0
push str.TagEndSymbol
push 0
call fcn.00401b7d
push 0x40f710
call fcn.0040b510
push dword [0x40fe28]
push 0x40e062
push str.levelSymbol
push 0
call fcn.00401b7d
push 0x40f714
call fcn.0040b510
push 1
push str.TitleRange
push 0
call fcn.00401f6e
mov dword [0x40f718], eax
push 1
push str.PageSeparator
push 0
call fcn.00401f6e
mov dword [0x40f71c], eax
push dword [0x40fe28]
push 0x40e010
push str.BrowserTitle
push 0
call fcn.00401b7d
push 0x40f720
call fcn.0040b510
lea ebp, [0x40f758]
mov edx, str.Named
lea ecx, [ebp + 0xc]
call fcn.00404008
mov ebx, dword [0x40f724]
push 1
push 0x40e532
push 0
call fcn.00401f6e
or ebx, eax
mov dword [0x40f724], ebx
mov ebx, dword [0x40f724]
push 1
push 0x40e2d8
push 0
call fcn.00401f6e
mov edi, eax
shl edi, 1
or ebx, edi
mov dword [0x40f724], ebx
mov ebx, dword [0x40f724]
push 1
push str.quot
push 0
call fcn.00401f6e
mov edi, eax
shl edi, 2
or ebx, edi
mov dword [0x40f724], ebx
push dword [0x40f774]
call fcn.0040551c
push 8
push 0x40e5fc
lea eax, [0x40f774]
push eax
push 4
call fcn.0040546b
call fcn.00402547
call fcn.004030b6
mov dword [0x40f748], 0
call fcn.004074a6
mov dword [0x40f74c], eax
mov ebx, dword [0x40f74c]
cmp ebx, 0x332d
jne 0x401478
call fcn.004074ae
mov dword [0x40f750], eax
mov eax, dword [0x40f750]
mov dword [0x40f748], eax
jmp 0x4014a2
mov ebx, dword [0x40f74c]
cmp ebx, 0x332c
jne 0x401492
call fcn.004074bd
mov dword [0x40f748], eax
jmp 0x4014a2
mov ebx, dword [0x40f74c]
cmp ebx, 0x10
jne 0x4014a2
jmp 0x4015b5
mov ebx, dword [0x40f748]
cmp ebx, 0xd
jne 0x401524
mov eax, dword [0x40fe28]
push eax
push eax
push dword [0x40fe28]
push 9
call fcn.0040593f
mov edx, dword [0x40e620]
add dword [esp], edx
call fcn.004040c0
pop dword [0x40fe28]
mov dword [0x40f718], eax
push 0xa
call fcn.004059a6
mov dword [0x40f71c], eax
mov eax, dword [0x40fe28]
push eax
push eax
push 0xb
call fcn.0040593f
push 0x40f720
call fcn.0040b510
call fcn.00402a61
mov dword [0x40f754], eax
cmp dword [0x40f754], 0
je 0x40151f
jmp 0x4015b5
jmp 0x4015b0
mov ebx, dword [0x40f748]
cmp ebx, 0xe
jne 0x401536
jmp 0x4015b5
mov ebx, dword [0x40f748]
cmp ebx, 3
jne 0x401554
call fcn.004074cc
mov ebx, eax
cmp ebx, 7
jne 0x401554
mov eax, 1
jmp 0x401556
xor eax, eax
and eax, eax
je 0x40157c
mov eax, dword [0x40fe28]
push eax
push eax
push 3
call fcn.0040593f
push 0x40f704
call fcn.0040b510
call fcn.004030b6
jmp 0x4015b0
mov ebx, dword [0x40f748]
cmp ebx, 4
jne 0x40158e
call fcn.0040184a
jmp 0x4015b0
mov ebx, dword [0x40f748]
cmp ebx, 6
jne 0x4015a0
call fcn.004017dd
jmp 0x4015b0
mov ebx, dword [0x40f748]
cmp ebx, 8
jne 0x4015b0
call fcn.004016fb
jmp 0x401440
push 0
call fcn.0040715d
cmp dword [0x40f754], 0
je 0x4016b8
lea ebp, [0x40f758]
mov edx, str.Template
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40fe28]
push dword [0x40f704]
push str.Last
push 1
call fcn.00401b7d
pop dword [0x40fe28]
lea ebp, [0x40f758]
mov edx, str.Files
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40fe28]
push dword [0x40f6f8]
push str.Source
push 1
call fcn.00401b7d
pop dword [0x40fe28]
push dword [0x40fe28]
push dword [0x40f708]
push str.Product
push 1
call fcn.00401b7d
pop dword [0x40fe28]
lea ebp, [0x40f758]
mov edx, str.Settings
lea ecx, [ebp + 0xc]
call fcn.00404008
push dword [0x40f718]
push str.TitleRange
push 1
call fcn.00401f6e
push dword [0x40f71c]
push str.PageSeparator
push 1
call fcn.00401f6e
push dword [0x40fe28]
push dword [0x40f720]
push str.BrowserTitle
push 1
call fcn.00401b7d
pop dword [0x40fe28]
call fcn.00402f02
push 0
call 0x4016d7
call fcn.0040b4e0
push dword [0x40f6e4]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.00405925
call fcn.00407254
call fcn.00408b03
call fcn.00409438
call fcn.00409563
call fcn.00409ab0
call fcn.00405400
ret