Function at 0x40dbb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x461251
mov eax, dword fs:[0]
push eax
sub esp, 0x570
mov eax, dword [0x484c64]
xor eax, esp
mov dword [esp + 0x56c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x484c64]
xor eax, esp
push eax
lea eax, [esp + 0x584]
mov dword fs:[0], eax
push 0x103
lea eax, [esp + 0x37d]
push 0
push eax
mov esi, ecx
mov dword [esp + 0x20], 1
mov byte [esp + 0x384], 0
call fcn.00447ba0
push 0x103
lea ecx, [esp + 0x48d]
push 0
push ecx
mov byte [esp + 0x494], 0
call fcn.00447ba0
add esp, 0x18
push 0x104
lea edx, [esp + 0x37c]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x378]
push eax
call fcn.00421a31
push 0x104
lea ecx, [esp + 0x484]
mov edi, edx
push ecx
lea edx, [esp + 0x384]
push edx
mov ebp, eax
call fcn.0040aa10
add esp, 0x10
movzx eax, bp
push 0x20
push eax
mov eax, ebp
mov edx, edi
mov cl, 0x10
call fcn.00449530
and eax, 0xffff
push eax
mov edx, edi
and edx, 0xffff
push edx
mov eax, edi
mov ecx, edi
sar eax, 0x10
push eax
sar ecx, 0x1f
lea ecx, [esp + 0x490]
push ecx
push str._s_version_d._d._d._d__Image_d_bits
push 1
push 0x4866f8
sar edi, 0x1f
call fcn.00401000
call fcn.0041beac
movzx edx, word [0x496a2e]
mov ecx, dword [0x4969a4]
push eax
movzx eax, word [0x496a2c]
push edx
mov edx, dword [0x4969a0]
push eax
mov eax, dword [0x49699c]
push ecx
mov ecx, dword [0x4969a8]
push edx
push eax
push ecx
push str.Running_on_Windows_PlatId_d_Version__d._d.0._d_SP_d._d_Windows_64Bit_OS_d
push 1
push 0x4866f8
call fcn.00401000
mov ebp, dword [esp + 0x5e0]
add esp, 0x4c
lea ebx, [esi + 0x244]
push ebp
mov ecx, ebx
mov dword [esi + 0xa8], ebp
call fcn.004260ab
lea edi, [esi + 0x248]
push str.mariner
mov ecx, edi
call fcn.0040b9c0
push str.fromrunonce
mov ecx, edi
mov dword [esi + 0xac], eax
call fcn.0040b9c0
test eax, eax
je 0x40de62
xor ebx, ebx
mov ebp, 0xf
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], ebx
mov byte [esp + 0x54], bl
mov dword [esp + 0x58c], ebx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], bl
lea edx, [esp + 0x50]
push edx
mov ecx, edi
mov byte [esp + 0x590], 1
call fcn.00426486
push 0xc
push str._fromrunonce
lea ecx, [esp + 0x3c]
call fcn.00402c70
mov edx, dword [esp + 0x38]
mov edi, 0x10
cmp dword [esp + 0x4c], edi
jae 0x40dda3
lea edx, [esp + 0x38]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40dda8
sub eax, esi
push eax
push ebx
push edx
lea ecx, [esp + 0x5c]
call fcn.0040b340
cmp eax, 0xffffffff
je 0x40de28
push 2
push 0x469f4c
push 2
push eax
lea ecx, [esp + 0x60]
call fcn.0040c050
cmp dword [esp + 0x68], edi
mov ecx, dword [esp + 0x54]
jae 0x40dde5
lea ecx, [esp + 0x54]
cmp dword [esp + 0x4c], edi
mov eax, dword [esp + 0x38]
jae 0x40ddf3
lea eax, [esp + 0x38]
push ecx
push eax
push str.Removing__s_flag_from_command_line___s__n
push 1
push 0x4866f8
call fcn.00401000
mov eax, dword [esp + 0x68]
add esp, 0x14
cmp dword [esp + 0x68], edi
jae 0x40de17
lea eax, [esp + 0x54]
push 2
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push eax
call fcn.0041b621
add esp, 0x1c
cmp dword [esp + 0x4c], edi
jb 0x40de3b
mov eax, dword [esp + 0x38]
push eax
call fcn.0042abf8
add esp, 4
cmp dword [esp + 0x68], edi
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], 0
jb 0x40de5b
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0042abf8
add esp, 4
xor eax, eax
jmp 0x40e48f
cmp dword [esi + 0xec], 0
mov edi, 0x10
jne 0x40dea5
cmp dword [esi + 0xc8], edi
jb 0x40de80
mov eax, dword [esi + 0xb4]
jmp 0x40de86
lea eax, [esi + 0xb4]
push eax
push 1
lea edx, [esi + 0xcc]
push edx
mov ecx, ebx
call fcn.0042652a
test eax, eax
mov dword [esi + 0xec], eax
je 0x40e451
cmp dword [esi + 0xe4], edi
jb 0x40deb5
mov eax, dword [esi + 0xd0]
jmp 0x40debb
lea eax, [esi + 0xd0]
push eax
push str.Using_datfile:__s_n
push 1
push 0x4866f8
call fcn.00401000
add esp, 0x10
cmp dword [esi + 0xe4], edi
jb 0x40dee0
mov edi, dword [esi + 0xd0]
jmp 0x40dee6
lea edi, [esi + 0xd0]
push 0x103
lea eax, [esp + 0x175]
push 0
push eax
mov dword [esi + 0xe8], edi
mov byte [esp + 0x17c], 0
call fcn.00447ba0
mov eax, edi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x40df10
sub eax, edx
cmp eax, 2
jbe 0x40df49
cmp byte [edi], 0x5c
jne 0x40df2b
cmp byte [edi + 1], 0x5c
je 0x40df31
cmp byte [edi + 1], 0x3a
jne 0x40df49
push edi
lea ecx, [esp + 0x174]
push 0x104
push ecx
call fcn.00448647
add esp, 0xc
jmp 0x40df84
lea edx, [esp + 0x170]
push 0x104
push edx
call fcn.0041a921
lea eax, [esp + 0x178]
push eax
call fcn.0040ab20
mov ecx, dword [esi + 0xe8]
push ecx
lea edx, [esp + 0x180]
push 0x104
push edx
call fcn.004486ac
add esp, 0x18
lea eax, [esp + 0x170]
push 0x104
push eax
call fcn.0040a950
add esp, 8
test eax, eax
jne 0x40dfca
lea ecx, [esp + 0x170]
push ecx
push str.Datfile__s_does_not_exist____n
push 8
push 0x4866f8
mov dword [esi + 0xa4], 2
call fcn.00401000
add esp, 0x10
xor eax, eax
jmp 0x40e48f
mov edi, dword [0x496258]
mov edx, dword [esi + 0xe8]
push edx
mov ecx, ebx
call fcn.004268c5
or eax, edi
push eax
mov ecx, 0x4866f8
call fcn.0041999a
push str.CICEApp::InitInstance_____intitializing_variable_n
push 2
push 0x4866f8
call fcn.00401000
mov eax, dword [esi + 0xe8]
add esp, 0xc
lea edi, [esi + 0x2c8]
push edi
push 0
push ebp
push eax
mov ecx, 0x496260
call fcn.00427db0
test eax, eax
je 0x40e44a
push str.testloc
lea ecx, [esi + 0x248]
call fcn.0040b9c0
mov ecx, dword [esi + 0xe8]
xor edx, edx
test eax, eax
sete dl
push ecx
lea ebp, [esi + 0xf0]
mov ecx, ebx
mov dword [esi + 0x110], eax
push edx
push ebp
call fcn.00426e37
cmp dword [ebp + 0x18], 0x10
jb 0x40e060
mov ebp, dword [ebp + 4]
jmp 0x40e063
add ebp, 4
push ebp
mov ecx, 0x496260
call fcn.00428abe
mov word [esi + 0x10c], ax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.0040da20
cmp dword [esi + 0xc8], 0x10
mov dword [esp + 0x58c], 2
jb 0x40e09d
mov ecx, dword [esi + 0xb4]
jmp 0x40e0a3
lea ecx, [esi + 0xb4]
movzx edx, word [esi + 0x10c]
push eax
mov eax, dword [esi + 0xe8]
push 0
push ecx
mov ecx, dword [esp + 0x5a0]
push ecx
push edx
push eax
mov ecx, edi
call fcn.0041dbe2
lea ecx, [esp + 0x18]
mov dword [esp + 0x58c], 0xffffffff
call fcn.00401d50
mov ecx, dword [esi + 0xe8]
push ecx
mov ecx, ebx
call fcn.00426aa1
push str.swreinst
lea ecx, [esi + 0x248]
mov dword [esi + 0x114], eax
call fcn.0040b9c0
push 0x103
lea edx, [esp + 0x71]
push 0
push edx
mov dword [esi + 0x240], eax
mov byte [esp + 0x78], 0
call fcn.00447ba0
lea eax, [esp + 0x78]
push 0x104
push eax
call fcn.0041a921
add esp, 0x14
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esi + 0x208]
call fcn.004049f0
mov eax, dword [esi + 0xe8]
push 0x800
push 0x104
lea edx, [esp + 0x74]
push edx
push str.ProductSeries
push str.Version
push eax
mov ecx, edi
call fcn.0041d6cc
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esi + 0x17c]
call fcn.004049f0
lea ebp, [esi + 0x224]
push str._SourcePath_
mov ecx, ebp
call fcn.004049f0
push 0x800
push 0
push ebp
mov ecx, edi
call fcn.0041f9ae
mov eax, dword [esi + 0xe8]
push 0x800
push 0x104
lea edx, [esp + 0x74]
push edx
push str.CDGuid
push str.Version
push eax
mov ecx, edi
mov byte [esp + 0x84], 0
call fcn.0041d6cc
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esi + 0x1b4]
call fcn.004049f0
push 0x800
push 0x104
lea edx, [esp + 0x74]
mov byte [esp + 0x74], 0
push edx
mov eax, dword [esi + 0xe8]
push str.SoftwareGuid
push str.Version
push eax
mov ecx, edi
call fcn.0041d6cc
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esi + 0x1d0]
call fcn.004049f0
mov eax, dword [esi + 0xe8]
push 0x800
push 0x104
lea edx, [esp + 0x74]
push edx
push str.Manufacturer
push str.Version
push eax
mov ecx, edi
call fcn.0041d6cc
lea ecx, [esp + 0x6c]
lea ebp, [esi + 0x198]
push ecx
mov ecx, ebp
call fcn.004049f0
mov eax, dword [esi + 0xe8]
push 0x800
push 0x104
lea edx, [esp + 0x74]
push edx
push str.RegistryManufacturer
push str.Version
push eax
mov ecx, edi
call fcn.0041d6cc
test eax, eax
lea ecx, [esi + 0x1ec]
je 0x40e284
lea eax, [esp + 0x6c]
push eax
call fcn.004049f0
jmp 0x40e28e
push 0xffffffffffffffff
push 0
push ebp
call fcn.00402b90
cmp dword [esi + 0x190], 0
je 0x40e42d
cmp dword [esi + 0x1ac], 0
je 0x40e42d
push 0x103
lea ecx, [esp + 0x279]
push 0
push ecx
mov byte [esp + 0x280], 0
call fcn.00447ba0
add esp, 0xc
mov ecx, ebx
call fcn.00426c0f
mov dword [esi + 0x118], eax
lea eax, [esi + 0x11c]
push eax
push 0x469e4c
lea ecx, [esi + 0x248]
call fcn.004263b0
test eax, eax
je 0x40e329
mov ebp, dword [esi + 0x130]
test ebp, ebp
je 0x40e329
push 0xffffffffffffffff
lea edi, [esi + 0x11c]
push 0x46853c
mov ecx, edi
call fcn.0040b750
add ebp, 0xffffffff
cmp eax, ebp
je 0x40e3df
push 0x46853c
mov ecx, edi
call fcn.00406ea0
jmp 0x40e3df
movzx eax, word [esi + 0x10c]
mov ecx, dword [esi + 0xe8]
push eax
push 0x104
lea edx, [esp + 0x27c]
push edx
push str.INSTALLDIR
push 0x469d54
push ecx
mov ecx, edi
call fcn.0041d6cc
test eax, eax
jne 0x40e3bc
movzx eax, word [esi + 0x10c]
mov ecx, dword [esi + 0xe8]
push eax
push 0x104
lea eax, [esp + 0x27c]
push eax
push str.INSTALLDIR
push str.Version
push ecx
mov ecx, edi
call fcn.0041d6cc
test eax, eax
jne 0x40e3bc
movzx eax, word [esi + 0x10c]
mov ecx, dword [esi + 0xe8]
push eax
push 0x104
lea edx, [esp + 0x27c]
push edx
push str.Pre_Install
push str.Version
push ecx
mov ecx, edi
call fcn.0041d6cc
test eax, eax
je 0x40e3df
lea eax, [esp + 0x274]
push eax
call fcn.0040ab20
add esp, 4
lea ecx, [esp + 0x274]
push ecx
lea ecx, [esi + 0x11c]
call fcn.004049f0
push 0
mov ecx, ebx
call fcn.0042649a
lea edx, [esi + 0x138]
push edx
push 0x469e30
lea ecx, [esi + 0x248]
mov dword [esi + 0x158], eax
call fcn.004263b0
cmp dword [esi + 0x118], 0
mov dword [esi + 0x154], eax
je 0x40e41e
mov dword [esi + 0x114], 1
mov ecx, ebx
call fcn.00426c01
mov dword [esi + 0x178], eax
jmp 0x40e477
push str.Either_manufacturer_or__productSeries_is_empty._n
push 8
push 0x4866f8
call fcn.00401000
mov dword [esi + 0xa4], 0x643
jmp 0x40e46c
push str.Cannot_init_the_factory_n
jmp 0x40e432
push str.GetDatFileName___returned_FALSE.__We_need_a_dat_file_to_run._n
push 8
push 0x4866f8
mov dword [esi + 0xa4], 0x643
call fcn.00401000
add esp, 0xc
mov dword [esp + 0x14], 0
push str.CSetupApp::InitInstance_n
push 4
push 0x4866f8
call fcn.00401000
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0x584]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x56c]
xor ecx, esp
call fcn.00447b4c
add esp, 0x57c
ret 4