Function at 0x407980
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x5808
call fcn.0040b8d0
push esi
push edi
push 0x400
xor esi, esi
call fcn.0040b2a2
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc14]
push eax
call fcn.00406120
mov edi, dword [esp + 0x5820]
add esp, 8
test eax, eax
jne 0x4079e6
mov eax, dword [esp + 0x587c]
test eax, eax
jne 0x4079e6
mov eax, dword [esp + 0x5884]
test eax, eax
jne 0x4079e6
push edi
call fcn.00407730
add esp, 4
cmp eax, 0xffffffff
jne 0x4079e6
pop edi
or eax, eax
pop esi
add esp, 0x5808
ret
mov ecx, dword [str.installActions]
mov edx, dword [0x42104c]
push ebx
push ebp
push ecx
push 0x422cc0
push edx
push edi
call fcn.00403800
mov ebp, dword [esp + 0x582c]
mov ebx, dword [esp + 0x5838]
add esp, 0x10
test ebp, ebp
je 0x407b6f
mov eax, ebp
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407a20
sub eax, edx
mov dword [esp + 0x10], eax
je 0x407b6f
push 0
push ebp
call fcn.00418cb6
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
je 0x407b55
mov eax, dword [esp + 0x5824]
push eax
push ebp
call fcn.004069f0
add esp, 8
lea eax, [esp + 0x2018]
push ebp
push eax
call fcn.004070d0
lea eax, [esp + 0x2020]
mov edx, ebp
mov ecx, eax
add esp, 8
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x407a80
test esi, esi
je 0x407dcc
lea edx, [esp + 0x1418]
push edx
push str.S_ERUSR_PARAMFILE_NOT_FOUND
call fcn.00401970
add esp, 4
push eax
lea eax, [esp + 0x2820]
push eax
call fcn.0040b90d
add esp, 0xc
lea ecx, [esp + 0x1418]
push ecx
push str.S_ERUSR_PARAMFILE_NOT_FOUND
call fcn.00401990
add esp, 4
push eax
lea edx, [esp + 0x4820]
push edx
call fcn.0040b90d
lea eax, [esp + 0x2824]
push eax
call fcn.004019b0
lea ecx, [esp + 0x4828]
push ecx
call fcn.00403a40
add esp, 0x14
push ebp
push str.S_DEF_PARAMFILE
call fcn.00401970
add esp, 4
push eax
lea edx, [esp + 0x2820]
push edx
call fcn.0040b90d
add esp, 0xc
push ebp
push str.S_DEF_PARAMFILE
call fcn.00401990
add esp, 4
push eax
lea eax, [esp + 0x4820]
push eax
call fcn.0040b90d
lea ecx, [esp + 0x2824]
push ecx
call fcn.004019b0
lea edx, [esp + 0x4828]
push edx
call fcn.00403a40
add esp, 0x14
jmp 0x407df8
lea edx, [esp + 0x1418]
mov esi, 1
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x407b65
mov edx, ebp
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x407b75
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407b82
mov cx, word [0x41924c]
mov word [edi], cx
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407b97
test ebp, ebp
mov edx, dword [str.oraparam.ini]
mov dword [edi], edx
mov eax, dword [0x41a154]
mov dword [edi + 4], eax
mov ecx, dword [0x41a158]
mov dword [edi + 8], ecx
mov dl, byte [0x41a15c]
mov byte [edi + 0xc], dl
je 0x407bec
push 0
push ebp
call fcn.00418cb6
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
je 0x407bec
mov eax, dword [esp + 0x5824]
mov word [eax], 0x2e
jmp 0x407a5e
push ebp
push str.S_ERORAPARAMNFD_LOC
call fcn.00401990
add esp, 4
push eax
lea ecx, [esp + 0x3820]
push ecx
call fcn.0040b90d
lea edx, [esp + 0x3824]
push edx
call fcn.00403a40
push str.oraparam.ini
push 0x41924c
push 0x41924c
push ebx
push str._s_s.._s_s
push ebp
call fcn.0040b90d
add esp, 0x28
test ebp, ebp
je 0x407c6c
push 0
push ebp
call fcn.00418cb6
add esp, 8
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
je 0x407c6c
mov cx, word [0x4192f0]
mov eax, dword [esp + 0x5824]
mov word [eax], cx
mov dl, byte [0x4192f2]
mov byte [eax + 2], dl
jmp 0x407a5e
push ebp
push str.S_ERORAPARAMNFD_LOC
call fcn.00401990
add esp, 4
push eax
lea eax, [esp + 0x3820]
push eax
call fcn.0040b90d
lea ecx, [esp + 0x3824]
push ecx
call fcn.00403a40
push str.oraparam.ini
push 0x41924c
lea edx, [esp + 0xc30]
push edx
push str._s_s_s
push ebp
mov byte [ebp], 0
call fcn.0040b90d
push 0
push ebp
call fcn.00418cb6
add esp, 0x2c
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
jne 0x407a5e
push ebp
push str.S_ERORAPARAMNFD_LOC
call fcn.00401990
add esp, 4
push eax
lea eax, [esp + 0x3820]
push eax
call fcn.0040b90d
lea ecx, [esp + 0x3824]
push ecx
call fcn.00403a40
push str.oraparam.ini
push 0x41924c
push 0x41924c
lea edx, [esp + 0xc34]
push edx
push str._s_s.._s_s
push ebp
call fcn.0040b90d
push 0
push ebp
call fcn.00418cb6
add esp, 0x30
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x10], eax
jne 0x407a5e
mov eax, dword [esp + 0x5824]
push ebp
push str.S_ERORAPARAMNFD_LOC
mov byte [eax], 0
call fcn.00401990
add esp, 4
push eax
lea ecx, [esp + 0x3820]
push ecx
call fcn.0040b90d
lea edx, [esp + 0x3824]
push edx
call fcn.00403a40
push str.S_ERORAPARAMNFD
call fcn.00401970
mov esi, eax
mov eax, dword [0x422924]
add esp, 0x14
test eax, eax
je 0x407d8b
push esi
call fcn.004019b0
add esp, 4
jmp 0x407da4
push 0x10
push str.S_OUI
call fcn.00401970
add esp, 4
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push str.S_ERORAPARAMNFD
call fcn.00401990
push eax
call fcn.00403a40
add esp, 8
call fcn.004037a0
pop ebp
pop ebx
pop edi
mov eax, 0xfffffffe
pop esi
add esp, 0x5808
ret
push ebp
push str.S_USING_PARAMFILE
call fcn.00401990
add esp, 4
push eax
lea eax, [esp + 0x2820]
push eax
call fcn.0040b90d
lea ecx, [esp + 0x2824]
push ecx
call fcn.00403a40
add esp, 0x10
call fcn.004037a0
push ebx
call fcn.00418d69
lea edx, [esp + 0xc1c]
push edx
call fcn.00406120
add esp, 8
test eax, eax
jne 0x40863f
lea eax, [esp + 0xc18]
mov edx, ebx
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x407e28
push 3
push ebp
push 0x41a108
lea edx, [esp + 0x424]
push edx
push str.DISTRIBUTION
call fcn.004062b0
mov eax, dword [0x422938]
add esp, 0x14
test eax, eax
jne 0x407f30
push 1
push ebp
push 0x4193b8
lea eax, [esp + 0x24]
push eax
push str.JRE_SCRATCH_LOC
call fcn.004062b0
lea eax, [esp + 0x2c]
add esp, 0x14
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407e80
sub eax, edx
mov dword [esp + 0x10], eax
je 0x407f0a
mov eax, dword [esp + 0x5820]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407e98
sub eax, edx
mov esi, edx
mov edx, dword [esp + 0x5830]
mov edi, edx
dec edi
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x407eb0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407ed0
mov cx, word [0x41924c]
lea eax, [esp + 0x18]
mov word [edi], cx
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407ee8
sub eax, esi
dec edx
mov edi, edx
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x407ef4
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x422938]
test eax, eax
jne 0x407f30
mov edx, dword [esp + 0x582c]
push 1
push ebp
push 0x4193b8
push edx
push str.JRE_LOCATION
call fcn.004062b0
add esp, 0x14
mov eax, dword [esp + 0x5888]
push 1
push ebp
push 0x4193b8
push eax
push str.ACCESS_DIR
call fcn.004062b0
mov ecx, dword [esp + 0x5848]
push 1
push ebp
push 0x4193b8
push ecx
push str.JRE_MEMORY_OPTIONS
call fcn.004062b0
mov esi, dword [esp + 0x586c]
push 1
push ebp
push str.1.7.0.0.0
push esi
push str.OUI_VERSION
call fcn.004062b0
mov edx, dword [esp + 0x5884]
push 1
push ebp
push 0x4193b8
push edx
push str.JRE_VERSION
call fcn.004062b0
lea edx, [esp + 0x868]
add esp, 0x50
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x407fa6
mov bl, byte [esp + 0x418]
cmp bl, 0x54
lea eax, [esp + 0x818]
jne 0x408031
push 0x4192f0
push eax
mov dword [0x422934], 1
call fcn.00406090
add esp, 8
push 0
lea ecx, [esp + 0x81c]
push ecx
push 0x400
mov edx, ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push esi
lea eax, [esp + 0x101c]
push str..._stageComponentsoracle.swd.oui_s1DataFiles_
push eax
call fcn.0040b90d
push esi
lea ecx, [esp + 0x1c28]
push str..._stageComponentsoracle.swd.oui.core_s1DataFiles_
push ecx
call fcn.0040b90d
push esi
lea edx, [esp + 0x1834]
push str..._stageComponentsoracle.swd.opatch_s1DataFiles_
push edx
call fcn.0040b90d
add esp, 0x24
jmp 0x40806c
push eax
lea ecx, [esp + 0x101c]
push ecx
call fcn.0040b90d
lea edx, [esp + 0x820]
push edx
lea eax, [esp + 0x1c24]
push eax
call fcn.0040b90d
lea ecx, [esp + 0x828]
push ecx
lea edx, [esp + 0x182c]
push edx
call fcn.0040b90d
add esp, 0x18
mov ecx, dword [esp + 0x5838]
push 1
push ebp
lea eax, [esp + 0x1020]
push eax
push ecx
push str.OUI_LOCATION
call fcn.004062b0
mov eax, dword [esp + 0x5850]
push 1
push ebp
lea edx, [esp + 0x1c34]
push edx
push eax
push str.OUI_CORE_LOCATION
call fcn.004062b0
mov edx, dword [esp + 0x5868]
push 1
push ebp
lea ecx, [esp + 0x1848]
push ecx
push edx
push str.OPATCH_LOCATION
call fcn.004062b0
mov esi, dword [esp + 0x5888]
push 3
push ebp
push 0x41a108
push esi
push str.BOOTSTRAP
call fcn.004062b0
lea edx, [esp + 0x468]
add esp, 0x50
mov eax, ebp
sub edx, ebp
jmp 0x4080f0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4080f0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x418]
push eax
push 0x400
lea ecx, [esp + 0x20]
push ecx
push 0x419fac
push str.BOOTSTRAP_SIZE
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40813f
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + 0x419fac]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408130
mov edx, dword [esp + 0x5850]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x408150
mov edx, dword [esp + 0x5854]
push 3
push ebp
push 0x419f98
push edx
push str.MULTICD
call fcn.004062b0
lea eax, [esp + 0x42c]
mov edx, ebp
mov ecx, eax
add esp, 0x14
sub edx, ecx
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x408184
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x4193b8
push str.JRE_OSDPARAM
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x4081cf
xor eax, eax
jmp 0x4081c0
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x4081c0
mov edx, dword [esp + 0x585c]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4081e0
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x4081f7
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x4193b8
push str.ADDTO_CLASSPATH
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40823f
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408230
mov edx, dword [esp + 0x5858]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x408250
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [edx + eax]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x408267
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push str.oracle.sysman.oii.oiic.OiicInstaller
push str.INSTALL_CLASS
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x4082af
xor eax, eax
mov edi, edi
mov cl, byte [eax + str.oracle.sysman.oii.oiic.OiicInstaller]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x4082a0
mov edx, dword [esp + 0x5860]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4082c0
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [eax + edx]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x4082d7
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push str.oracle.sysman.oio.oioc.OiocOneClickInstaller
push str.INSTALL_ONECLICK_CLASS
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40831f
xor eax, eax
mov edi, edi
mov cl, byte [eax + str.oracle.sysman.oio.oioc.OiocOneClickInstaller]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408310
mov edx, dword [esp + 0x587c]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408330
cmp bl, 0x54
jne 0x40834d
push str.TRUE
push esi
call fcn.0040b90d
add esp, 8
mov esi, dword [esp + 0x5864]
test esi, esi
je 0x408378
mov eax, esi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x408360
sub eax, edx
mov dword [esp + 0x10], eax
je 0x408378
cmp dword [0x422920], 1
jne 0x4083a6
lea edx, [esp + 0x2418]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408383
push 0
push ebp
lea edx, [esp + 0x2420]
push edx
push esi
push str.PREREQ_CONFIG_LOCATION
call fcn.004062b0
add esp, 0x14
mov eax, dword [esp + 0x5868]
push 3
push ebp
push 0x41a108
push eax
push str.WAIT_FOR_COMPLETION
call fcn.004062b0
lea eax, [esp + 0x42c]
mov edx, ebp
mov ecx, eax
add esp, 0x14
sub edx, ecx
mov cl, byte [eax + edx]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x4083d0
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x419ec0
push str.COPY_THREADS
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40841f
xor eax, eax
jmp 0x408410
mov cl, byte [eax + 0x419ec0]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408410
mov edx, dword [esp + 0x586c]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408430
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [eax + edx]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x408447
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x4193b8
push str.EXT_JLIB
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40848f
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408480
mov edx, dword [esp + 0x5870]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4084a0
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [eax + edx]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x4084b7
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x4193b8
push str.EXT_LIB
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x4084ff
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x4084f0
mov edx, dword [esp + 0x5874]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408510
lea eax, [esp + 0x418]
mov edx, ebp
mov ecx, eax
sub edx, ecx
mov cl, byte [eax + edx]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x408527
lea edx, [esp + 0x418]
push edx
push 0x400
lea eax, [esp + 0x20]
push eax
push 0x4193b8
push str.EXT_BIN
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x40856f
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x408560
mov edx, dword [esp + 0x5878]
lea eax, [esp + 0x18]
mov ecx, eax
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x408580
lea eax, [esp + 0x418]
mov edx, eax
sub ebp, edx
mov cl, byte [eax + ebp]
mov byte [eax], cl
inc eax
test cl, cl
jne 0x408595
lea eax, [esp + 0x418]
push eax
push 0x400
lea ecx, [esp + 0x20]
push ecx
push 0x4193b8
push str.BOOTSTRAP_COMPS
push str.Oracle
call edi
mov al, byte [esp + 0x18]
test al, al
jne 0x4085df
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x4193b8]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x4085d0
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x18]
mov edx, esi
mov ecx, eax
sub edx, ecx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x4085f0
push 0x419564
push esi
call fcn.0040b9a6
add esp, 8
test eax, eax
je 0x40863d
mov esi, dword [esp + 0x5880]
mov edx, esi
mov ecx, eax
add esi, 0x400
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x408620
push 0x419564
push 0
call fcn.0040b9a6
add esp, 8
test eax, eax
jne 0x408613
xor eax, eax
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x5808
ret