Function at 0x1003e4e
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
je 0x1003e75
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
jmp 0x1003ea1
mov ecx, edi
call dword [sym.imp.ulib.dll_public:_unsigned_char___thiscall_PATH::EndsWithDelimiter_void_const]
test al, al
je 0x1003ea5
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
jmp 0x1003f18
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 0x1003ec6
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
xor eax, eax
mov byte [esi + 0xbd], 1
inc eax
jmp 0x1003f18
push 0x5637
mov ecx, esi
call fcn.01002e59
push 0x5636
mov ecx, esi
mov dword [ebp - 4], eax
call fcn.01002e59
cmp byte [esi + 0x9f], bl
mov dword [ebp - 8], eax
je 0x1003f1f
cmp byte [ebp + 0xc], bl
je 0x1003f1f
mov ecx, dword [ebp - 4]
mov byte [esi + 0xbd], bl
cmp ecx, ebx
je 0x1003f04
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [ebp - 8]
cmp ecx, ebx
je 0x1003f11
mov eax, dword [ecx]
push 1
call dword [eax]
movzx eax, byte [esi + 0xbd]
pop edi
pop esi
pop ebx
leave
ret 8
add edi, 0x210
mov dword [ebp + 0xc], edi
mov edi, 0xffff
push dword [ebp + 0xc]
mov eax, dword [esi]
push 0x10013c0
push ebx
push 0x562f
push esi
call dword [eax + 8]
add esp, 0x14
mov ecx, esi
call fcn.01002fd7
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 0x1003f72
mov dword [ebp + 8], 3
jmp 0x1003f85
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 0x100400f
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]
pop ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0xc], ebx
jbe 0x1003fe6
mov eax, dword [eax + 8]
mov ax, word [eax]
jmp 0x1003fe8
mov eax, edi
cmp ax, word [ebp + 8]
mov ecx, dword [ebp - 4]
je 0x1004017
cmp dword [ecx + 0xc], ebx
jbe 0x1003ffe
mov eax, dword [ecx + 8]
mov ax, word [eax]
jmp 0x1004000
mov eax, edi
cmp ax, word [ebp + 8]
jne 0x1003f2d
jmp 0x1003ef4
push 2
call dword [sym.imp.msvcrt.dll_exit]
mov byte [esi + 0xbd], 1
jmp 0x1003efa