Function at 0x40c0bc
Capabilities:
Allocate thread local storage
Create directory
Delete directory
Delete file
Get common file path
Get graphical window text
Get hostname
Read file on windows
Resume thread
Set console window title
Set current directory
Set environment variable
Set file attributes
Suspend thread
Write file on windows

Disassembly:
mov eax, 0x43d34c
call fcn.0043c8c0
sub esp, 0x10
push ebx
lea eax, [ebp + 8]
xor ebx, ebx
push esi
test eax, eax
push edi
jne 0x40ca21
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenEventW]
mov edi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c128
call esi
test eax, eax
je 0x40c115
cmp byte [ebp - 0xf], 0x3a
jne 0x40c115
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c13f
call esi
test eax, eax
je 0x40c13f
cmp byte [ebp - 0xf], 0x3a
jne 0x40c13f
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c180
call esi
test eax, eax
je 0x40c16d
cmp byte [ebp - 0xf], 0x3a
jne 0x40c16d
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c197
call esi
test eax, eax
je 0x40c197
cmp byte [ebp - 0xf], 0x3a
jne 0x40c197
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenSemaphoreW]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c1da
call esi
test eax, eax
je 0x40c1c7
cmp byte [ebp - 0xf], 0x3a
jne 0x40c1c7
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c1f1
call esi
test eax, eax
je 0x40c1f1
cmp byte [ebp - 0xf], 0x3a
jne 0x40c1f1
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c234
call esi
test eax, eax
je 0x40c221
cmp byte [ebp - 0xf], 0x3a
jne 0x40c221
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c24b
call esi
test eax, eax
je 0x40c24b
cmp byte [ebp - 0xf], 0x3a
jne 0x40c24b
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c28d
call esi
test eax, eax
je 0x40c27a
cmp byte [ebp - 0xf], 0x3a
jne 0x40c27a
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c2a4
call esi
test eax, eax
je 0x40c2a4
cmp byte [ebp - 0xf], 0x3a
jne 0x40c2a4
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetHandleCount]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c2e5
call esi
test eax, eax
je 0x40c2d2
cmp byte [ebp - 0xf], 0x3a
jne 0x40c2d2
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c2fc
call esi
test eax, eax
je 0x40c2fc
cmp byte [ebp - 0xf], 0x3a
jne 0x40c2fc
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFileEx]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c341
call esi
test eax, eax
je 0x40c32e
cmp byte [ebp - 0xf], 0x3a
jne 0x40c32e
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c358
call esi
test eax, eax
je 0x40c358
cmp byte [ebp - 0xf], 0x3a
jne 0x40c358
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_PulseEvent]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c399
call esi
test eax, eax
je 0x40c386
cmp byte [ebp - 0xf], 0x3a
jne 0x40c386
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c3b0
call esi
test eax, eax
je 0x40c3b0
cmp byte [ebp - 0xf], 0x3a
jne 0x40c3b0
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c3f1
call esi
test eax, eax
je 0x40c3de
cmp byte [ebp - 0xf], 0x3a
jne 0x40c3de
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c408
call esi
test eax, eax
je 0x40c408
cmp byte [ebp - 0xf], 0x3a
jne 0x40c408
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c44a
call esi
test eax, eax
je 0x40c437
cmp byte [ebp - 0xf], 0x3a
jne 0x40c437
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c461
call esi
test eax, eax
je 0x40c461
cmp byte [ebp - 0xf], 0x3a
jne 0x40c461
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c4a2
call esi
test eax, eax
je 0x40c48f
cmp byte [ebp - 0xf], 0x3a
jne 0x40c48f
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c4b9
call esi
test eax, eax
je 0x40c4b9
cmp byte [ebp - 0xf], 0x3a
jne 0x40c4b9
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c4fa
call esi
test eax, eax
je 0x40c4e7
cmp byte [ebp - 0xf], 0x3a
jne 0x40c4e7
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c511
call esi
test eax, eax
je 0x40c511
cmp byte [ebp - 0xf], 0x3a
jne 0x40c511
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c556
call esi
test eax, eax
je 0x40c543
cmp byte [ebp - 0xf], 0x3a
jne 0x40c543
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c56d
call esi
test eax, eax
je 0x40c56d
cmp byte [ebp - 0xf], 0x3a
jne 0x40c56d
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c5af
call esi
test eax, eax
je 0x40c59c
cmp byte [ebp - 0xf], 0x3a
jne 0x40c59c
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c5c6
call esi
test eax, eax
je 0x40c5c6
cmp byte [ebp - 0xf], 0x3a
jne 0x40c5c6
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c60a
call esi
test eax, eax
je 0x40c5f7
cmp byte [ebp - 0xf], 0x3a
jne 0x40c5f7
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c621
call esi
test eax, eax
je 0x40c621
cmp byte [ebp - 0xf], 0x3a
jne 0x40c621
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c663
call esi
test eax, eax
je 0x40c650
cmp byte [ebp - 0xf], 0x3a
jne 0x40c650
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c67a
call esi
test eax, eax
je 0x40c67a
cmp byte [ebp - 0xf], 0x3a
jne 0x40c67a
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c6bd
call esi
test eax, eax
je 0x40c6aa
cmp byte [ebp - 0xf], 0x3a
jne 0x40c6aa
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c6d4
call esi
test eax, eax
je 0x40c6d4
cmp byte [ebp - 0xf], 0x3a
jne 0x40c6d4
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c715
call esi
test eax, eax
je 0x40c702
cmp byte [ebp - 0xf], 0x3a
jne 0x40c702
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c72c
call esi
test eax, eax
je 0x40c72c
cmp byte [ebp - 0xf], 0x3a
jne 0x40c72c
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c76d
call esi
test eax, eax
je 0x40c75a
cmp byte [ebp - 0xf], 0x3a
jne 0x40c75a
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c784
call esi
test eax, eax
je 0x40c784
cmp byte [ebp - 0xf], 0x3a
jne 0x40c784
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c7c5
call esi
test eax, eax
je 0x40c7b2
cmp byte [ebp - 0xf], 0x3a
jne 0x40c7b2
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c7dc
call esi
test eax, eax
je 0x40c7dc
cmp byte [ebp - 0xf], 0x3a
jne 0x40c7dc
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c81e
call esi
test eax, eax
je 0x40c80b
cmp byte [ebp - 0xf], 0x3a
jne 0x40c80b
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c835
call esi
test eax, eax
je 0x40c835
cmp byte [ebp - 0xf], 0x3a
jne 0x40c835
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c876
call esi
test eax, eax
je 0x40c863
cmp byte [ebp - 0xf], 0x3a
jne 0x40c863
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c88d
call esi
test eax, eax
je 0x40c88d
cmp byte [ebp - 0xf], 0x3a
jne 0x40c88d
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEvent]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c8ce
call esi
test eax, eax
je 0x40c8bb
cmp byte [ebp - 0xf], 0x3a
jne 0x40c8bb
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c8e5
call esi
test eax, eax
je 0x40c8e5
cmp byte [ebp - 0xf], 0x3a
jne 0x40c8e5
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SleepEx]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c927
call esi
test eax, eax
je 0x40c914
cmp byte [ebp - 0xf], 0x3a
jne 0x40c914
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c93e
call esi
test eax, eax
je 0x40c93e
cmp byte [ebp - 0xf], 0x3a
jne 0x40c93e
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40c981
call esi
test eax, eax
je 0x40c96e
cmp byte [ebp - 0xf], 0x3a
jne 0x40c96e
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40c998
call esi
test eax, eax
je 0x40c998
cmp byte [ebp - 0xf], 0x3a
jne 0x40c998
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenEventA]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenThread]
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
lea eax, [ebp + 8]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x40ca0a
call esi
test eax, eax
je 0x40c9f7
cmp byte [ebp - 0xf], 0x3a
jne 0x40c9f7
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x14]
mov byte [ebp - 0x14], 0x42
push eax
mov byte [ebp - 0x13], 0x3a
mov byte [ebp - 0x12], bl
call edi
jmp 0x40ca21
call esi
test eax, eax
je 0x40ca21
cmp byte [ebp - 0xf], 0x3a
jne 0x40ca21
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push 0x20
lea ecx, [ebp - 0x14]
pop esi
mov dword [ebp - 0x10], 0x30
call fcn.00428bd8
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x14]
push edi
push esi
push 0x30
mov dword [ebp - 4], ebx
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 0x18
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x30
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 8
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x30
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 4
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x30
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 0x20
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push esi
mov dword [ebp - 0x10], esi
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 0x18
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x20
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 8
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x20
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 4
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x20
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 0x10
lea ecx, [ebp - 0x14]
pop eax
push 0x20
mov dword [ebp - 0x10], eax
pop esi
push edi
push esi
push eax
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 0x18
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x10
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 8
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x10
call fcn.00428c04
test eax, eax
jne 0x40cb37
push 4
lea ecx, [ebp - 0x14]
pop esi
push edi
push esi
push 0x10
call fcn.00428c04
test eax, eax
jne 0x40cb37
xor esi, esi
cmp esi, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
je 0x40cb71
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
push esi
push dword [ebp - 0x10]
call fcn.00428c42
test eax, eax
je 0x40cb71
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
push eax
push dword [ebp - 0x1c]
mov dword [ecx], eax
push dword [ebp + 0xc]
call sub.MSVCRT.dll_memcpy
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00428bfd
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc