Function at 0x919ec0
Capabilities:
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x528c
call fcn.00a91950
mov eax, dword [0xb196ec]
xor eax, esp
mov dword [esp + 0x5288], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x20]
push ebx
mov ebx, dword [ebp + 0x28]
push esi
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x40], ebx
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x74], edx
cmp eax, ebx
je 0x919f21
mov dword [eax], ebx
cmp esi, ebx
je 0x919f27
mov byte [esi], bl
cmp ecx, ebx
je 0x919f2d
mov byte [ecx], bl
cmp edx, ebx
je 0x919f33
mov dword [edx], ebx
push 0x207
lea edx, [esp + 0x88d]
push ebx
push edx
mov byte [esp + 0x894], bl
call fcn.00a7ffb0
add esp, 0xc
push 0x3fff
lea eax, [esp + 0x1295]
push ebx
push eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebx
mov byte [esp + 0x129c], bl
call fcn.00a7ffb0
add esp, 0xc
push 0x207
lea ecx, [esp + 0x475]
push ebx
push ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0x47c], bl
call fcn.00a7ffb0
add esp, 0xc
cmp dword [0xbf97ac], ebx
jne 0x91a065
push str.unrar.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0xbf97ac], eax
cmp eax, ebx
jne 0x91a016
cmp esi, ebx
je 0x91ab55
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Unable_to_load_unrar.dll._Error_Code:__d
push esi
call fcn.00a78f30
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.RARCloseArchive
push eax
call esi
mov edx, dword [0xbf97ac]
push str.RARProcessFile
push edx
mov dword [0xbf979c], eax
call esi
mov dword [0xbf97a0], eax
mov eax, dword [0xbf97ac]
push str.RARReadHeader
push eax
call esi
mov ecx, dword [0xbf97ac]
push str.RAROpenArchiveEx
push ecx
mov dword [0xbf97a4], eax
call esi
mov esi, dword [esp + 0x10]
mov dword [0xbf97a8], eax
cmp dword [0xbf979c], ebx
je 0x91ab3f
cmp dword [0xbf97a0], ebx
je 0x91ab3f
cmp dword [0xbf97a4], ebx
je 0x91ab3f
cmp dword [0xbf97a8], ebx
je 0x91ab3f
cmp edi, ebx
je 0x91a09d
cmp byte [edi], bl
jne 0x91a0b2
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x91aafa
cmp word [eax], bx
je 0x91aafa
push 0xa4
lea edx, [esp + 0x84]
push ebx
push edx
mov byte [esp + 0x129c], bl
call fcn.00a7ffb0
add esp, 0xc
cmp edi, ebx
je 0x91a118
cmp byte [edi], bl
je 0x91a118
push 0x2e
push edi
call fcn.00a7aa50
add esp, 8
cmp eax, ebx
je 0x91a10f
mov ecx, eax
cmp byte [eax], bl
je 0x91a0f5
lea esp, [esp]
inc ecx
cmp byte [ecx], bl
jne 0x91a0f0
sub ecx, eax
cmp ecx, 4
jne 0x91a10f
mov al, byte [eax + 2]
cmp al, 0x30
jl 0x91a10f
cmp al, 0x39
jg 0x91a10f
mov dword [esp + 0x2c], 1
mov dword [esp + 0x80], edi
jmp 0x91a16b
mov eax, dword [esp + 0x28]
push 0x2e
push eax
call fcn.00a7c507
add esp, 8
cmp eax, ebx
je 0x91a15c
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
cmp dx, bx
jne 0x91a130
sub ecx, esi
sar ecx, 1
cmp ecx, 4
jne 0x91a15c
movzx eax, word [eax + 4]
cmp ax, 0x30
jb 0x91a15c
cmp ax, 0x39
ja 0x91a15c
mov dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x1290]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], 0x4000
cmp eax, ebx
je 0x91a19b
mov dword [esp + 0x88], 1
cmp byte [eax], bl
jne 0x91a1a2
mov dword [esp + 0x88], ebx
lea eax, [esp + 0x80]
push eax
call dword [0xbf97a8]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x14], eax
cmp ecx, ebx
je 0x91a1f8
cmp esi, ebx
je 0x91a1cc
mov eax, esi
mov edx, edi
call fcn.00985c40
cmp dword [esp + 0x14], ebx
je 0x91ab55
mov ecx, dword [esp + 0x14]
push ecx
call dword [0xbf979c]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0xa0]
test al, 4
je 0x91a2b9
cmp eax, 4
jne 0x91a24c
mov eax, dword [esp + 0x44]
mov dword [esp + 0x24], 1
cmp eax, ebx
je 0x91a258
cmp dword [eax], ebx
jbe 0x91a258
cmp byte [esp + 0x470], bl
jne 0x91a2a3
cmp edi, ebx
je 0x91a289
cmp byte [edi], bl
je 0x91a289
lea edx, [esp + 0x470]
mov eax, edi
sub edx, edi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x91a240
jmp 0x91a2a3
test al, 3
je 0x91a2b9
mov dword [esp + 0x24], 2
mov ecx, dword [esp + 0x14]
push ecx
call dword [0xbf979c]
cmp esi, ebx
je 0x91ab55
cmp dword [esp + 0x24], 1
mov edi, dword [esp + 0x10]
jne 0x91a304
mov ecx, 7
mov esi, str.Archive_is_password_protected
jmp 0x91ab51
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x474]
push 0xaa8700
push eax
call fcn.00a78f30
add esp, 0xc
cmp esi, ebx
je 0x91a2b9
mov edi, dword [esp + 0x10]
mov ecx, 7
mov esi, str.Archive_is_password_protected
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [esp + 0x354], ebx
cmp dword [esp + 0x24], ebx
jne 0x91a337
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x91a337
cmp byte [eax], bl
je 0x91a337
lea edx, [esp + 0x888]
sub edx, eax
jmp 0x91a2e0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x91a2e0
lea edx, [esp + 0x888]
push 0x5c
push edx
call fcn.00a7aa50
add esp, 8
cmp eax, ebx
je 0x91a32a
mov byte [eax], bl
jmp 0x91a337
mov ecx, 9
mov esi, str.Archive_is_spanned_over_multiple_files
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
mov eax, 0x2e
mov word [esp + 0x888], ax
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x128]
push ecx
push edx
call dword [0xbf97a4]
test eax, eax
jne 0x91aa7e
test byte [esp + 0x330], 4
mov dword [esp + 0x64], ebx
je 0x91a3e8
cmp dword [esp + 0x10], ebx
je 0x91a37c
mov edi, dword [esp + 0x10]
mov ecx, 7
mov esi, str.Archive_is_password_protected
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x24], 1
mov dword [esp + 0xc], ebx
cmp esi, ebx
je 0x91aa7e
cmp dword [esi], ebx
jbe 0x91aa7e
cmp byte [esp + 0x470], bl
jne 0x91a3ec
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x91a3cc
cmp byte [eax], bl
je 0x91a3cc
lea edx, [esp + 0x470]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x91a3c0
jmp 0x91a3ec
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x474]
push 0xaa8700
push ecx
call fcn.00a78f30
add esp, 0xc
jmp 0x91a3ec
mov esi, dword [esp + 0x44]
test byte [esp + 0x350], 0x10
jne 0x91a9ef
cmp dword [esp + 0x338], ebx
jbe 0x91a9ef
cmp dword [esp + 0x24], ebx
jne 0x91aa1e
cmp dword [esp + 0x5c], 0xffffffff
jne 0x91a445
mov al, 0x5c
lea edx, [esp + 0x22c]
call fcn.00975920
mov esi, eax
mov al, 0x2f
lea edx, [esp + 0x22c]
call fcn.00975920
add esi, eax
cmp esi, 2
mov dword [esp + 0x5c], esi
jge 0x91aa5c
lea edx, [esp + 0x22c]
push 0x2e
push edx
call fcn.00a7aa50
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x91a47c
lea eax, [esp + 0x22c]
push 0x5f
push eax
call fcn.00a7aa50
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x91a511
mov byte [edi], 0x2e
mov eax, str..txt
mov ecx, edi
call fcn.0094c330
test eax, eax
jne 0x91a49c
cmp dword [esp + 0x3c], 3
jge 0x91a49c
inc dword [esp + 0x3c]
jmp 0x91a9ef
cmp edi, ebx
je 0x91a511
mov eax, 0xae0f28
mov ecx, edi
call fcn.0094c330
test eax, eax
je 0x91a9ef
mov eax, str..json
mov ecx, edi
call fcn.0094c330
test eax, eax
je 0x91a9ef
mov eax, 0xae0f18
mov ecx, edi
call fcn.0094c330
test eax, eax
je 0x91a9ef
lea ecx, [esp + 0x22c]
push ecx
call fcn.00919c00
add esp, 4
test eax, eax
je 0x91a511
cmp dword [esp + 0x4c], ebx
jne 0x91a503
mov dword [esp + 0x4c], 1
jmp 0x91a99b
add dword [esp + 0xc], 2
mov dword [esp + 0x4c], ebx
jmp 0x91a99b
mov dword [esp + 0x30], ebx
mov dword [esp + 0x18], ebx
cmp edi, ebx
je 0x91a5b4
lea esi, [edi + 1]
call fcn.00975880
test eax, eax
je 0x91a537
mov dword [esp + 0x30], 1
jmp 0x91a5b4
mov eax, str..DOC
mov ecx, edi
call fcn.0094c3e0
test eax, eax
je 0x91a577
mov eax, str..DOT
mov ecx, edi
call fcn.0094c3e0
test eax, eax
je 0x91a577
mov eax, str..RTF
mov ecx, edi
call fcn.0094c3e0
test eax, eax
je 0x91a577
mov eax, str..PUB
mov ecx, edi
call fcn.0094c3e0
test eax, eax
jne 0x91a5b4
mov edx, dword [esp + 0x338]
fild dword [esp + 0x338]
test edx, edx
jge 0x91a58f
fadd qword [0xb0baa8]
fcomp qword [0xb0bb78]
fnstsw ax
test ah, 5
jnp 0x91a5ac
lea esi, [esp + 0x22c]
call fcn.00905840
test eax, eax
je 0x91a5b4
mov dword [esp + 0x18], 1
cmp dword [ebp + 0x24], ebx
jne 0x91a79b
cmp dword [esp + 0x30], ebx
jne 0x91a5cd
cmp dword [esp + 0x18], ebx
je 0x91a79b
push 0x3ff
lea eax, [esp + 0xa95]
push ebx
push eax
mov byte [esp + 0xa9c], bl
call fcn.00a7ffb0
add esp, 0xc
push 0x3ff
lea ecx, [esp + 0xe95]
push ebx
push ecx
mov byte [esp + 0xe9c], bl
call fcn.00a7ffb0
add esp, 0xc
push 0x103
lea edx, [esp + 0x67d]
push ebx
push edx
mov byte [esp + 0x684], bl
call fcn.00a7ffb0
add esp, 0xc
push 0x103
lea eax, [esp + 0x785]
push ebx
push eax
mov byte [esp + 0x78c], bl
call fcn.00a7ffb0
add esp, 0xc
lea ecx, [esp + 0xe90]
push ecx
push 0x400
mov dword [esp + 0x80], ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0xa90]
push edx
push ebx
push 0xae1948
lea eax, [esp + 0xe9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [esp + 0xa90]
call fcn.0094dd20
cmp byte [esp + 0xa90], bl
je 0x91a909
push ebx
push ebx
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x790]
push eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0xaa4]
push ecx
mov ecx, dword [esp + 0x50]
push ebx
lea edx, [esp + 0x694]
push edx
push eax
push ecx
mov dword [esp + 0x5c], 1
call fcn.00919ec0
push 1
push ebx
xor edx, edx
lea ecx, [esp + 0xac0]
call fcn.0095a0f0
add esp, 0x30
test eax, eax
jne 0x91a909
cmp dword [esp + 0x30], ebx
je 0x91a725
mov eax, dword [esp + 0x1c]
push ebx
push ebx
lea edx, [esp + 0x3c]
push edx
push ebx
push ebx
push ebx
push eax
lea ecx, [esp + 0x694]
push ecx
lea edx, [esp + 0xab0]
push ebx
push edx
mov dword [esp + 0x5c], 2
call fcn.00919ec0
add esp, 0x28
test eax, eax
jmp 0x91a784
cmp dword [esp + 0x18], ebx
je 0x91a78a
mov eax, dword [esp + 0x38]
push eax
push ebx
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0xaa0]
push ebx
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x88], ebx
call fcn.00928dc0
add esp, 0x18
test eax, eax
je 0x91a780
cmp dword [esp + 0x20], ebx
je 0x91a780
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x91a78a
mov dword [eax], 1
lea eax, [esp + 0xa90]
call fcn.0094dd20
jmp 0x91a909
cmp dword [esp + 0x2c], ebx
jne 0x91a78a
inc dword [esp + 0xc]
lea eax, [esp + 0xa90]
call fcn.0094dd20
jmp 0x91a909
cmp edi, ebx
je 0x91a909
cmp dword [esp + 0x1c], ebx
je 0x91a909
mov ecx, dword [esp + 0x338]
push ecx
lea edx, [esp + 0x230]
push edx
call fcn.00919660
add esp, 8
test eax, eax
je 0x91a909
mov eax, str..LNK
mov ecx, edi
call fcn.0094c330
test eax, eax
jne 0x91a7e7
mov dword [esp + 0x6c], 1
jmp 0x91a843
mov eax, 0xace5f4
mov ecx, edi
call fcn.0094c330
test eax, eax
jne 0x91a801
mov dword [esp + 0x60], 1
jmp 0x91a843
mov eax, 0xace5d4
mov ecx, edi
call fcn.0094c330
test eax, eax
jne 0x91a81b
mov dword [esp + 0x68], 1
jmp 0x91a843
mov eax, str..SCR
mov ecx, edi
call fcn.0094c330
test eax, eax
je 0x91a83b
mov eax, str..PIF
mov ecx, edi
call fcn.0094c330
test eax, eax
jne 0x91a843
mov dword [esp + 0x58], 1
lea eax, [esp + 0x22c]
push 0x5c
push eax
call fcn.00a7aa50
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x91a85e
inc esi
jmp 0x91a865
lea esi, [esp + 0x22c]
mov ecx, dword [esp + 0x1c]
mov dword [ecx], 1
cmp dword [esp + 0x48], ebx
jne 0x91a880
mov edx, dword [esp + 0x338]
mov dword [esp + 0x48], edx
push 0x103
lea eax, [esp + 0x36d]
push ebx
push eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x374], bl
call fcn.00a7ffb0
add esp, 0xc
lea ecx, [esp + 0x20]
push ecx
push str.cmd.exe_chcp.com_route.exe_conime.exe_userinit.exe_winlogon.exe_imapi.exe_svchost.exe_taskeng.exe_netsh.exe_eventvwr.exe_cnab5rpk.exe_wscntfy.exe_mobsync.exe_xcopy.exe_SearchFilterHost.exe_AUDIODG.EXE_conhost.exe_cacls.exe_cleanmgr.exe_control.exe_cscript.exe_ctfmon.exe_drwtsn32.exe_dwwin.exe_ntbackup.exe_PresentationHost.exe_reg.exe_regsvr32.exe_rundll32.exe_sndvol32.exe_taskhost.exe_tcpsvcs.exe_wbengine.exe_wiaacmgr.exe_CompatTelRunner.exe_DeviceDisplayObjectProvider.exe_dinotify.exe_DllHost.exe_hkcmd.exe_igfxtray.exe_netplwiz.exe_ntvdm.exe_rstrui.exe_SearchProtocolHost.exe_SndVol.exe_sndvol32.exe_spoolsv.exe_sysocmgr.exe_WScript.exe_wgatray.exe_systempropertiesadvanced.exe_systempropertiesprotection.exe_inetinfo.exe_mode.com_logon.scr_logonui.exe_mmc.exe_msdtc.exe_mshta.exe_mspaint.exe_notepad.exe_smss.exe_csrss.exe_wininit.exe_lsass.exe_services.exe_vshost.exe
mov bl, 0x2c
lea edi, [esp + 0x370]
call fcn.0095ae80
add esp, 8
cmp dword [esp + 0x20], 0xffffffff
je 0x91a907
push 0
lea edx, [esp + 0x36c]
push edx
push esi
call fcn.0095c8c0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x91a8ff
lea eax, [esp + 0x20]
push eax
push str.cmd.exe_chcp.com_route.exe_conime.exe_userinit.exe_winlogon.exe_imapi.exe_svchost.exe_taskeng.exe_netsh.exe_eventvwr.exe_cnab5rpk.exe_wscntfy.exe_mobsync.exe_xcopy.exe_SearchFilterHost.exe_AUDIODG.EXE_conhost.exe_cacls.exe_cleanmgr.exe_control.exe_cscript.exe_ctfmon.exe_drwtsn32.exe_dwwin.exe_ntbackup.exe_PresentationHost.exe_reg.exe_regsvr32.exe_rundll32.exe_sndvol32.exe_taskhost.exe_tcpsvcs.exe_wbengine.exe_wiaacmgr.exe_CompatTelRunner.exe_DeviceDisplayObjectProvider.exe_dinotify.exe_DllHost.exe_hkcmd.exe_igfxtray.exe_netplwiz.exe_ntvdm.exe_rstrui.exe_SearchProtocolHost.exe_SndVol.exe_sndvol32.exe_spoolsv.exe_sysocmgr.exe_WScript.exe_wgatray.exe_systempropertiesadvanced.exe_systempropertiesprotection.exe_inetinfo.exe_mode.com_logon.scr_logonui.exe_mmc.exe_msdtc.exe_mshta.exe_mspaint.exe_notepad.exe_smss.exe_csrss.exe_wininit.exe_lsass.exe_services.exe_vshost.exe
mov bl, 0x2c
lea edi, [esp + 0x370]
call fcn.0095ae80
add esp, 8
cmp dword [esp + 0x20], 0xffffffff
jne 0x91a8c3
jmp 0x91a907
mov dword [esp + 0x54], 1
xor ebx, ebx
mov ecx, dword [esp + 0x40]
cmp ecx, ebx
je 0x91a97d
cmp byte [ecx], bl
je 0x91a97d
mov eax, dword [ebp + 0x24]
cmp eax, ebx
je 0x91a92d
cmp dword [eax], 1
jne 0x91a97d
cmp dword [esp + 0x30], ebx
jne 0x91a92d
cmp dword [esp + 0x18], ebx
je 0x91a97d
mov edx, dword [esp + 0x14]
push ecx
lea ecx, [esp + 0x88c]
push ecx
push 2
push edx
mov dword [esp + 0x74], 1
call dword [0xbf97a0]
test eax, eax
jne 0x91a97d
mov edx, dword [esp + 0x7c]
cmp edx, ebx
je 0x91a96c
lea eax, [esp + 0x22c]
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
cmp cl, bl
jne 0x91a962
mov eax, dword [esp + 0x74]
cmp eax, ebx
je 0x91a97d
mov edx, dword [esp + 0x338]
mov dword [eax], edx
cmp dword [esp + 0xc], 1
jne 0x91a997
cmp dword [esp + 0x50], ebx
jle 0x91a997
mov eax, dword [esp + 0x338]
cmp eax, dword [esp + 0x48]
je 0x91a99b
inc dword [esp + 0xc]
mov eax, 1
add dword [esp + 0x50], eax
cmp dword [esp + 0xc], eax
jle 0x91a9e9
cmp dword [esp + 0x1c], ebx
je 0x91aa7e
mov ecx, dword [esp + 0x1c]
cmp dword [ecx], eax
jne 0x91aa7e
cmp dword [esp + 0x54], ebx
jne 0x91aa63
cmp dword [esp + 0x6c], ebx
jne 0x91aa63
cmp dword [esp + 0x2c], ebx
jne 0x91aa63
cmp dword [esp + 0xc], 3
jg 0x91aa7e
cmp dword [esp + 0x64], ebx
jne 0x91aa01
mov ecx, dword [esp + 0x14]
push ebx
push ebx
push ebx
push ecx
call dword [0xbf97a0]
cmp eax, ebx
jne 0x91aa71
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x128]
push edx
push eax
call dword [0xbf97a4]
test eax, eax
je 0x91a352
jmp 0x91aa7e
mov eax, dword [esi]
cmp eax, 4
je 0x91aa69
cmp eax, 1
je 0x91aa2f
cmp eax, 2
jne 0x91a9ef
push eax
lea edx, [esp + 0x230]
push edx
lea eax, [esp + 0x478]
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], ebx
call fcn.0092fbf0
add esp, 0xc
test eax, eax
jne 0x91aa69
cmp dword [esp + 0x18], ebx
jne 0x91aa7e
jmp 0x91a9ef
add dword [esp + 0xc], 2
jmp 0x91aa7e
mov dword [esp + 0xc], eax
jmp 0x91aa7e
mov dword [esi], 0xff
jmp 0x91aa7e
mov ecx, dword [esp + 0x10]
cmp ecx, ebx
je 0x91aa7e
call fcn.00985d20
mov ecx, dword [esp + 0x14]
push ecx
call dword [0xbf979c]
mov eax, dword [esp + 0xc]
cmp eax, 1
jne 0x91aac0
cmp dword [esp + 0x2c], ebx
je 0x91aaa6
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x91aaa6
mov dword [eax], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
cmp eax, 2
je 0x91aace
cmp eax, 3
jne 0x91ab55
cmp dword [esp + 0x58], ebx
jne 0x91aae0
cmp dword [esp + 0x60], ebx
jne 0x91aae0
cmp dword [esp + 0x68], ebx
je 0x91ab55
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
cmp esi, ebx
je 0x91ab55
mov edx, dword [str.Invalid_Parameters_]
mov dword [esi], edx
mov eax, dword [0xae18d0]
mov dword [esi + 4], eax
mov ecx, dword [0xae18d4]
mov dword [esi + 8], ecx
mov edx, dword [0xae18d8]
mov dword [esi + 0xc], edx
mov eax, dword [0xae18dc]
mov dword [esi + 0x10], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x5288]
xor ecx, esp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret
cmp esi, ebx
je 0x91ab55
mov edi, dword [esp + 0x10]
mov ecx, 8
mov esi, str.Unable_to_get_function_addresses.
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, dword [esp + 0x5294]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00a78f21
mov esp, ebp
pop ebp
ret