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

Disassembly:
push 0xffffffffffffffff
push 0x49de62
mov eax, dword fs:[0]
push eax
mov eax, 0x10dc
call fcn.00454e50
mov eax, dword [0x4c1bd8]
xor eax, esp
mov dword [esp + 0x10d8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c1bd8]
xor eax, esp
push eax
lea eax, [esp + 0x10f0]
mov dword fs:[0], eax
mov esi, dword [esp + 0x1100]
push 0x48
mov edi, ecx
call fcn.00453fb8
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x10f8], 0
test eax, eax
je 0x43ad91
push esi
mov ecx, eax
call fcn.0044b9a0
mov esi, eax
jmp 0x43ad93
xor esi, esi
or ebp, 0xffffffff
mov dword [esp + 0x10f8], ebp
test esi, esi
jne 0x43ada8
xor eax, eax
jmp 0x43be29
push 0
mov ecx, esi
call fcn.0044d460
test al, al
je 0x43ada1
push str.SetupInfo
mov ecx, esi
call fcn.0044a670
test eax, eax
je 0x43ada1
mov dword [edi + 0x44], 1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
mov esi, eax
push str.Product
mov ecx, esi
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.DefaultDir
mov ecx, esi
mov ebx, eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.Links
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.OnInit
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.InstallPre
mov ecx, esi
mov dword [esp + 0x24], eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.Install
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.InstallEnd
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.0044a670
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
push str.Name
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
push eax
mov ecx, edi
mov dword [esp + 0x10fc], 1
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43aed6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Main
mov ecx, ebx
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 4]
push eax
mov dword [esp + 0x10fc], 2
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43af29
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.NTMin
mov ecx, ebx
call fcn.0044b6c0
push str.NTMax
mov ecx, ebx
mov dword [edi + 0x48], eax
call fcn.0044b6c0
push 0x4a530c
mov ecx, ebx
mov dword [edi + 0x4c], eax
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x18]
push eax
mov dword [esp + 0x10fc], 3
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43af9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Publisher
mov ecx, ebx
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x20]
push eax
mov dword [esp + 0x10fc], 4
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43afed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a52fc
mov ecx, ebx
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x24]
push eax
mov dword [esp + 0x10fc], 5
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43b040
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a52f8
mov ecx, ebx
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x28]
push eax
mov dword [esp + 0x10fc], 6
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea edx, [eax + 0xc]
mov ecx, ebp
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43b093
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.VerDesc
mov ecx, ebx
call fcn.0044b6c0
test eax, eax
je 0x43b0e0
push str.VerDesc
mov ecx, ebx
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x2c]
push eax
mov dword [esp + 0x10fc], 7
call fcn.0040e240
lea ecx, [esp + 0x14]
mov dword [esp + 0x10f8], ebp
call fcn.0040da70
push 0x4a52ec
mov ecx, ebx
mov dword [edi + 0x30], 0x20
call fcn.0044b6c0
test eax, eax
je 0x43b10f
push 0x4a52ec
mov ecx, ebx
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [edi + 0x30], eax
mov ecx, dword [esp + 0x18]
push str.Path
call fcn.0044b6c0
push eax
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x10]
push eax
mov dword [esp + 0x10fc], 8
call fcn.0040e240
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x10f8], ebp
lea ecx, [eax + 0xc]
lock xadd dword [ecx], ebp
dec ebp
test ebp, ebp
jg 0x43b162
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
call fcn.0044a7d0
mov esi, eax
test esi, esi
je 0x43b2d7
jmp 0x43b180
push 0x618
lea ecx, [esp + 0x88]
push 0
push ecx
call fcn.00454ce0
add esp, 0xc
push 0x4a52e0
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x18]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.00455578
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b1e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Name
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x294]
push edx
call fcn.00455578
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b239
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a52dc
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b29a
push 0x4a52dc
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x49c]
push edx
call fcn.00455578
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b29a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [edi + 0x64]
mov eax, dword [ebx + 4]
lea ecx, [edi + 0x50]
lea edx, [esp + 0x84]
push edx
push eax
push ebx
call fcn.00436820
push 1
lea ecx, [edi + 0x50]
mov ebp, eax
call fcn.00437710
mov dword [ebx + 4], ebp
mov eax, dword [ebp + 4]
mov ecx, esi
mov dword [eax], ebp
call fcn.0044a840
mov esi, eax
test esi, esi
jne 0x43b180
mov esi, dword [esp + 0x1c]
push str.Group
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b31e
push str.Group
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.00439280
lea ecx, [edi + 0x34]
push eax
mov dword [esp + 0x10fc], 9
call fcn.0040e240
lea ecx, [esp + 0x1c]
jmp 0x43b369
push 0x4a0e7c
lea eax, [edi + 0x20]
push eax
lea edx, [esp + 0x30]
push edx
call fcn.00416660
push edi
push eax
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x1110], 0xa
call fcn.0040e150
add esp, 0x18
lea ecx, [edi + 0x34]
push eax
mov byte [esp + 0x10fc], 0xb
call fcn.0040e240
lea ecx, [esp + 0x1c]
call fcn.0040da70
lea ecx, [esp + 0x28]
mov dword [esp + 0x10f8], 0xffffffff
call fcn.0040da70
mov ecx, esi
call fcn.0044a7d0
mov esi, eax
test esi, esi
je 0x43b5ad
lea ebx, [ebx]
push 0x828
lea ecx, [esp + 0x88]
push 0
push ecx
call fcn.00454ce0
add esp, 0xc
push str.Name
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0x94]
push eax
call fcn.00455578
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b3f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a52dc
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x2c]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x29c]
push edx
call fcn.00455578
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b449
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Path
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x4a4]
push edx
call fcn.00455578
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b49a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Param
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b4fb
push str.Param
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x6ac]
push edx
call fcn.00455578
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b4fb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Platform
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b529
push str.Platform
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.004574f4
fstp dword [esp + 0x88]
add esp, 4
jmp 0x43b536
fld dword [0x4a4aac]
fstp dword [esp + 0x84]
push str.Condition
mov ecx, esi
mov dword [esp + 0x8c], 0
call fcn.0044b6c0
test eax, eax
je 0x43b56d
push str.Condition
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x88], eax
mov ebx, dword [edi + 0x80]
mov eax, dword [ebx + 4]
lea ecx, [edi + 0x6c]
lea edx, [esp + 0x84]
push edx
push eax
push ebx
call fcn.00436890
push 1
lea ecx, [edi + 0x6c]
mov ebp, eax
call fcn.004377b0
mov dword [ebx + 4], ebp
mov eax, dword [ebp + 4]
mov ecx, esi
mov dword [eax], ebp
call fcn.0044a840
mov esi, eax
test esi, esi
jne 0x43b390
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
lea ecx, [edi + 0xa4]
lea edx, [edi + 0xc0]
lea eax, [edi + 0x88]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], 0
mov edi, edi
mov ecx, dword [esp + 0x18]
mov ecx, dword [esp + ecx + 0x6c]
call fcn.0044a7d0
mov esi, eax
test esi, esi
je 0x43b959
mov edx, dword [esp + 0x18]
mov eax, dword [esp + edx + 0x78]
mov dword [esp + 0x14], eax
jmp 0x43b620
push 0x834
xor ebx, ebx
lea ecx, [esp + 0x88]
push ebx
push ecx
call fcn.00454ce0
add esp, 0xc
push str.File
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b69b
push str.File
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0x2a8]
push eax
call fcn.00455578
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b6a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x43b6a5
xor ecx, ecx
mov word [esp + 0x2a0], cx
push str.Type
mov ecx, esi
mov dword [esp + 0x90], ebx
call fcn.0044b6c0
test eax, eax
je 0x43b6d8
push str.Type
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x8c], eax
push str.Name
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b739
push str.Name
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.00455578
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b739
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Mode
mov ecx, esi
mov dword [esp + 0x94], ebx
call fcn.0044b6c0
test eax, eax
je 0x43b76c
push str.Mode
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x90], eax
xor ecx, ecx
mov word [esp + 0x4a8], cx
push str.Param
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43b7d7
push str.Param
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x30]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0x4b0]
push eax
call fcn.00455578
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b7d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5294
mov ecx, esi
mov byte [esp + 0x88], 0
call fcn.0044b6c0
test eax, eax
je 0x43b810
push 0x4a5294
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
test eax, eax
setne cl
mov byte [esp + 0x84], cl
push str.Return
mov ecx, esi
mov byte [esp + 0x89], 0
call fcn.0044b6c0
test eax, eax
je 0x43b849
push str.Return
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
test eax, eax
setne dl
mov byte [esp + 0x85], dl
push str.Silent
mov ecx, esi
mov dword [esp + 0x8c], ebx
call fcn.0044b6c0
test eax, eax
je 0x43b87c
push str.Silent
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x88], eax
push str.TimeOut
mov ecx, esi
mov dword [esp + 0x98], ebx
call fcn.0044b6c0
test eax, eax
je 0x43b8af
push str.TimeOut
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x94], eax
xor eax, eax
push str.Display
mov ecx, esi
mov word [esp + 0x6b4], ax
call fcn.0044b6c0
test eax, eax
je 0x43b91a
push str.Display
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x20]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x6b8]
push edx
call fcn.00455578
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43b91a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
mov ebp, dword [ecx + 0x14]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x84]
push edx
push eax
push ebp
call fcn.004367b0
mov ecx, dword [esp + 0x14]
push 1
mov ebx, eax
call fcn.00437670
mov dword [ebp + 4], ebx
mov eax, dword [ebx + 4]
mov ecx, esi
mov dword [eax], ebx
call fcn.0044a840
mov esi, eax
test esi, esi
jne 0x43b620
mov eax, dword [esp + 0x18]
add eax, 4
cmp eax, 0xc
mov dword [esp + 0x18], eax
jl 0x43b5f0
mov ecx, dword [esp + 0x30]
call fcn.0044a7d0
mov dword [esp + 0x18], eax
test eax, eax
je 0x43be24
lea ecx, [esp + 0x50]
call fcn.00436cd0
mov esi, dword [esp + 0x18]
push str.ResID
mov ecx, esi
mov dword [esp + 0x10fc], 0xc
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
push str.FileSize
mov ecx, esi
mov dword [esp + 0x3c], eax
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
push 0x4a5258
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
test eax, eax
setg cl
mov byte [esp + 0x44], cl
push str.Platform
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43ba15
push str.Platform
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.004574f4
fstp dword [esp + 0x4c]
add esp, 4
jmp 0x43ba1f
fld dword [0x4a4aac]
fstp dword [esp + 0x48]
push str.Condition
mov ecx, esi
mov dword [esp + 0x50], 0
call fcn.0044b6c0
test eax, eax
je 0x43ba50
push str.Condition
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x4c], eax
mov ecx, esi
call fcn.0044a7d0
mov esi, eax
test esi, esi
je 0x43bd81
push 0x834
xor ebx, ebx
lea edx, [esp + 0x8bc]
push ebx
push edx
call fcn.00454ce0
add esp, 0xc
push str.File
mov ecx, esi
call fcn.0044b6c0
push eax
lea eax, [esp + 0x34]
push eax
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea ecx, [esp + 0xadc]
push ecx
call fcn.00455578
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x43baca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Type
mov ecx, esi
mov dword [esp + 0x8c4], ebx
call fcn.0044b6c0
test eax, eax
je 0x43bafd
push str.Type
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x8c0], eax
push str.Name
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43bb5e
push str.Name
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0x8d4]
push edx
call fcn.00455578
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bb5e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.Mode
mov ecx, esi
mov dword [esp + 0x8c8], ebx
call fcn.0044b6c0
test eax, eax
je 0x43bb91
push str.Mode
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x8c4], eax
xor ecx, ecx
mov word [esp + 0xcdc], cx
push str.Param
mov ecx, esi
call fcn.0044b6c0
test eax, eax
je 0x43bbfc
push str.Param
mov ecx, esi
call fcn.0044b6c0
push eax
lea edx, [esp + 0x28]
push edx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea eax, [esp + 0xce4]
push eax
call fcn.00455578
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bbfc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x4a5294
mov ecx, esi
mov byte [esp + 0x8bc], 0
call fcn.0044b6c0
test eax, eax
je 0x43bc35
push 0x4a5294
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
test eax, eax
setne cl
mov byte [esp + 0x8b8], cl
push str.Return
mov ecx, esi
mov byte [esp + 0x8bd], 0
call fcn.0044b6c0
test eax, eax
je 0x43bc6e
push str.Return
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
test eax, eax
setne dl
mov byte [esp + 0x8b9], dl
push str.Silent
mov ecx, esi
mov dword [esp + 0x8c0], ebx
call fcn.0044b6c0
test eax, eax
je 0x43bca1
push str.Silent
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x8bc], eax
push str.TimeOut
mov ecx, esi
mov dword [esp + 0x8cc], ebx
call fcn.0044b6c0
test eax, eax
je 0x43bcd4
push str.TimeOut
mov ecx, esi
call fcn.0044b6c0
push eax
call fcn.00455852
add esp, 4
mov dword [esp + 0x8c8], eax
xor eax, eax
push str.Display
mov ecx, esi
mov word [esp + 0xee8], ax
call fcn.0044b6c0
test eax, eax
je 0x43bd3f
push str.Display
mov ecx, esi
call fcn.0044b6c0
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
call fcn.00439280
mov eax, dword [eax]
push 0x104
push eax
lea edx, [esp + 0xeec]
push edx
call fcn.00455578
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43bd3f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x64]
mov edx, dword [eax + 4]
lea ebx, [eax + 4]
lea ecx, [esp + 0x8b8]
push ecx
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.004367b0
push 1
lea ecx, [esp + 0x54]
mov ebp, eax
call fcn.00437670
mov dword [ebx], ebp
mov eax, dword [ebp + 4]
mov ecx, esi
mov dword [eax], ebp
call fcn.0044a840
mov esi, eax
test esi, esi
jne 0x43ba61
mov eax, dword [esp + 0x68]
mov esi, dword [edi + 0xf0]
lea ebx, [edi + 0xdc]
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x44], eax
mov edx, dword [esi + 4]
push edx
push esi
mov ecx, ebx
call fcn.0043aa70
push 1
mov ecx, ebx
mov ebp, eax
call fcn.00437850
mov ecx, dword [esp + 0x18]
mov dword [esi + 4], ebp
mov eax, dword [ebp + 4]
mov dword [eax], ebp
call fcn.0044a840
mov ecx, dword [esp + 0x64]
mov ebx, eax
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x64]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x64]
xor ebp, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10f8], 0xffffffff
mov dword [esp + 0x68], ebp
cmp eax, ecx
je 0x43be05
mov esi, dword [eax]
push eax
call fcn.00453aa7
mov ecx, dword [esp + 0x68]
add esp, 4
mov eax, esi
cmp esi, ecx
jne 0x43bdf0
push ecx
call fcn.00453aa7
mov eax, dword [esp + 0x54]
push eax
mov dword [esp + 0x6c], ebp
call fcn.00453aa7
add esp, 8
cmp ebx, ebp
jne 0x43b982
mov eax, 1
mov ecx, dword [esp + 0x10f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x10d8]
xor ecx, esp
call fcn.00454cc7
add esp, 0x10e8
ret 4