Function at 0x100397c
Capabilities:
Terminate process

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
push ebx
push edi
mov esi, ecx
call dword [sym.imp.ulib.dll_public:_static_class_FSN_DIRECTORY____stdcall_SYSTEM::QueryDirectory_class_PATH_const___unsigned_char_]
cmp eax, ebx
jne 0x10046c2
mov ecx, edi
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_PATH::EndsWithDelimiter_void_const]
test al, al
je 0x10046cf
mov eax, dword [edi + 0x21c]
dec eax
lea esi, [edi + 0x210]
push eax
mov ecx, esi
call dword [sym.imp.ulib.dll_public:_unsigned_long_int___thiscall_WSTRING::Truncate_unsigned_long_int_]
push ebx
push esi
mov ecx, edi
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_PATH::Initialize_class_WSTRING_const___unsigned_char_]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 8
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
jmp 0x10039cd
push ebx
push ebx
push edi
call dword [sym.imp.ulib.dll_public:_static_class_FSN_FILE____stdcall_SYSTEM::QueryFile_class_PATH_const___unsigned_char__unsigned_char__]
cmp eax, ebx
je 0x10046f3
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
xor eax, eax
mov byte [esi + 0xbd], 1
inc eax
jmp 0x10039cf
push 0x5637
mov ecx, esi
call fcn.01005b6f
push 0x5636
mov ecx, esi
mov dword [ebp - 4], eax
call fcn.01005b6f
mov dword [ebp - 8], eax
cmp byte [esi + 0x9f], bl
je 0x100474a
cmp byte [ebp + 0xc], bl
je 0x100474a
mov ecx, dword [ebp - 4]
mov byte [esi + 0xbd], bl
cmp ecx, ebx
je 0x1004731
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [ebp - 8]
cmp ecx, ebx
je 0x100473e
mov eax, dword [ecx]
push 1
call dword [eax]
movzx eax, byte [esi + 0xbd]
jmp 0x10039cf
add edi, 0x210
mov dword [ebp + 0xc], edi
mov edi, 0xffff
push dword [ebp + 0xc]
mov eax, dword [esi]
push 0x100582c
push ebx
push 0x562f
push esi
call dword [eax + 8]
add esp, 0x14
mov ecx, esi
call fcn.010012d2
mov ecx, dword [esi + 0xb4]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_KEYBOARD::DisableLineMode_void_]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 8]
test al, al
je 0x100479d
mov dword [ebp + 8], 3
jmp 0x10047b0
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x18]
mov edx, dword [eax]
push ebx
lea ecx, [ebp + 8]
push ecx
mov ecx, eax
call dword [edx + 0x14]
mov ecx, dword [esi + 0xb4]
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_KEYBOARD::EnableLineMode_void_]
cmp word [ebp + 8], 3
je 0x100483b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
push dword [ebp + 8]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov edx, dword [eax]
push 0xd
mov ecx, eax
call dword [edx + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov edx, dword [eax]
push 0xa
mov ecx, eax
call dword [edx + 0x28]
push dword [ebp + 8]
call dword [sym.imp.msvcrt.dll_towupper]
movzx eax, ax
pop ecx
mov ecx, dword [ebp - 8]
mov dword [ebp + 8], eax
cmp dword [ecx + 0xc], ebx
jbe 0x1004814
mov ecx, dword [ecx + 8]
movzx ecx, word [ecx]
jmp 0x1004816
mov ecx, edi
cmp cx, ax
mov ecx, dword [ebp - 4]
je 0x1004843
cmp dword [ecx + 0xc], ebx
jbe 0x100482b
mov edx, dword [ecx + 8]
movzx edx, word [edx]
jmp 0x100482d
mov edx, edi
cmp dx, ax
je 0x1004721
jmp 0x1004758
push 2
call dword [sym.imp.msvcrt.dll_exit]
mov byte [esi + 0xbd], 1
jmp 0x1004727