Function at 0x41f09a
Capabilities:
Allocate thread local storage
Create directory
Get common file path
Read file on windows
Resume thread
Set current directory
Set environment variable
Set file attributes
Suspend thread

Disassembly:
mov eax, 0x434a87
call fcn.00433ea0
mov eax, 0x3f7c4
call fcn.00433ed0
push ebx
lea eax, [ebp - 0x18]
xor ebx, ebx
push esi
test eax, eax
push edi
mov dword [ebp - 0x18], ecx
jne 0x41f7cc
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenEventA]
mov edi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f110
call esi
test eax, eax
je 0x41f0fd
cmp byte [ebp - 0xf], 0x3a
jne 0x41f0fd
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 0x41f127
call esi
test eax, eax
je 0x41f127
cmp byte [ebp - 0xf], 0x3a
jne 0x41f127
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f169
call esi
test eax, eax
je 0x41f156
cmp byte [ebp - 0xf], 0x3a
jne 0x41f156
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 0x41f180
call esi
test eax, eax
je 0x41f180
cmp byte [ebp - 0xf], 0x3a
jne 0x41f180
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f1c2
call esi
test eax, eax
je 0x41f1af
cmp byte [ebp - 0xf], 0x3a
jne 0x41f1af
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 0x41f1d9
call esi
test eax, eax
je 0x41f1d9
cmp byte [ebp - 0xf], 0x3a
jne 0x41f1d9
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f219
call esi
test eax, eax
je 0x41f206
cmp byte [ebp - 0xf], 0x3a
jne 0x41f206
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 0x41f230
call esi
test eax, eax
je 0x41f230
cmp byte [ebp - 0xf], 0x3a
jne 0x41f230
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f271
call esi
test eax, eax
je 0x41f25e
cmp byte [ebp - 0xf], 0x3a
jne 0x41f25e
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 0x41f288
call esi
test eax, eax
je 0x41f288
cmp byte [ebp - 0xf], 0x3a
jne 0x41f288
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f2ca
call esi
test eax, eax
je 0x41f2b7
cmp byte [ebp - 0xf], 0x3a
jne 0x41f2b7
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 0x41f2e1
call esi
test eax, eax
je 0x41f2e1
cmp byte [ebp - 0xf], 0x3a
jne 0x41f2e1
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f324
call esi
test eax, eax
je 0x41f311
cmp byte [ebp - 0xf], 0x3a
jne 0x41f311
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 0x41f33b
call esi
test eax, eax
je 0x41f33b
cmp byte [ebp - 0xf], 0x3a
jne 0x41f33b
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f37e
call esi
test eax, eax
je 0x41f36b
cmp byte [ebp - 0xf], 0x3a
jne 0x41f36b
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 0x41f395
call esi
test eax, eax
je 0x41f395
cmp byte [ebp - 0xf], 0x3a
jne 0x41f395
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f3d6
call esi
test eax, eax
je 0x41f3c3
cmp byte [ebp - 0xf], 0x3a
jne 0x41f3c3
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 0x41f3ed
call esi
test eax, eax
je 0x41f3ed
cmp byte [ebp - 0xf], 0x3a
jne 0x41f3ed
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_CreateDirectoryExA]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f44d
call esi
test eax, eax
je 0x41f41d
cmp byte [ebp - 0xf], 0x3a
jne 0x41f41d
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f43a
cmp byte [ebp - 0xf], 0x3a
jne 0x41f43a
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 0x41f464
call esi
test eax, eax
je 0x41f464
cmp byte [ebp - 0xf], 0x3a
jne 0x41f464
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_GetAtomNameA]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f4c4
call esi
test eax, eax
je 0x41f494
cmp byte [ebp - 0xf], 0x3a
jne 0x41f494
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f4b1
cmp byte [ebp - 0xf], 0x3a
jne 0x41f4b1
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 0x41f4db
call esi
test eax, eax
je 0x41f4db
cmp byte [ebp - 0xf], 0x3a
jne 0x41f4db
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_OpenEventW]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f53b
call esi
test eax, eax
je 0x41f50b
cmp byte [ebp - 0xf], 0x3a
jne 0x41f50b
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f528
cmp byte [ebp - 0xf], 0x3a
jne 0x41f528
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 0x41f552
call esi
test eax, eax
je 0x41f552
cmp byte [ebp - 0xf], 0x3a
jne 0x41f552
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_SetWindowLongA]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f5b2
call esi
test eax, eax
je 0x41f582
cmp byte [ebp - 0xf], 0x3a
jne 0x41f582
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f59f
cmp byte [ebp - 0xf], 0x3a
jne 0x41f59f
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 0x41f5c9
call esi
test eax, eax
je 0x41f5c9
cmp byte [ebp - 0xf], 0x3a
jne 0x41f5c9
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f627
call esi
test eax, eax
je 0x41f5f7
cmp byte [ebp - 0xf], 0x3a
jne 0x41f5f7
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f614
cmp byte [ebp - 0xf], 0x3a
jne 0x41f614
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 0x41f63e
call esi
test eax, eax
je 0x41f63e
cmp byte [ebp - 0xf], 0x3a
jne 0x41f63e
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f69f
call esi
test eax, eax
je 0x41f66f
cmp byte [ebp - 0xf], 0x3a
jne 0x41f66f
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f68c
cmp byte [ebp - 0xf], 0x3a
jne 0x41f68c
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 0x41f6b6
call esi
test eax, eax
je 0x41f6b6
cmp byte [ebp - 0xf], 0x3a
jne 0x41f6b6
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 - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f715
call esi
test eax, eax
je 0x41f6e5
cmp byte [ebp - 0xf], 0x3a
jne 0x41f6e5
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f702
cmp byte [ebp - 0xf], 0x3a
jne 0x41f702
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 0x41f72c
call esi
test eax, eax
je 0x41f72c
cmp byte [ebp - 0xf], 0x3a
jne 0x41f72c
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_OpenMutexA]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
push ebx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
lea eax, [ebp - 0x18]
cmp eax, 0x4db
lea eax, [ebp - 0x10]
push eax
push 3
jne 0x41f7b5
call esi
test eax, eax
je 0x41f785
cmp byte [ebp - 0xf], 0x3a
jne 0x41f785
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 0x10]
push eax
push 3
call esi
test eax, eax
je 0x41f7a2
cmp byte [ebp - 0xf], 0x3a
jne 0x41f7a2
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 0x41f7cc
call esi
test eax, eax
je 0x41f7cc
cmp byte [ebp - 0xf], 0x3a
jne 0x41f7cc
movzx eax, byte [ebp - 0x10]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
mov esi, dword [ebp - 0x18]
mov eax, dword [0x43c3d0]
push 0x7530
push dword [esi + 0x18]
call dword [eax + 0x70]
cmp eax, ebx
je 0x41f8e9
cmp eax, 0xffffffff
je 0x41f8e9
push 0x1fbd0
call sub.MFC42.DLL_operatornew
pop ecx
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x3f7d0]
mov dword [ebp - 0x1c], ebx
call fcn.004139eb
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x3f7d0]
push eax
mov dword [ebp - 4], ebx
push dword [ebp - 0x20]
call fcn.0041487d
cmp dword [ebp - 0x1c], ebx
je 0x41f86b
mov eax, dword [0x43c3d0]
push 0xbb8
push dword [esi + 0x18]
call dword [eax + 0x70]
cmp eax, ebx
je 0x41f8da
cmp eax, 0xffffffff
je 0x41f8da
xor edi, edi
cmp dword [ebp - 0x1c], ebx
jle 0x41f86b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0041f8f8
add dword [ebp - 0x18], 0x104
inc edi
cmp edi, dword [ebp - 0x1c]
jl 0x41f854
mov eax, dword [0x43c3d0]
push 0x1388
push dword [esi + 0x18]
call dword [eax + 0x70]
cmp eax, ebx
je 0x41f8da
cmp eax, 0xffffffff
je 0x41f8da
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x3f7d0]
push eax
push dword [ebp - 0x20]
call fcn.0041507a
cmp dword [ebp - 0x1c], ebx
je 0x41f86b
mov eax, dword [0x43c3d0]
push 0xbb8
push dword [esi + 0x18]
call dword [eax + 0x70]
cmp eax, ebx
je 0x41f8da
cmp eax, 0xffffffff
je 0x41f8da
xor edi, edi
cmp dword [ebp - 0x1c], ebx
jle 0x41f86b
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
mov ecx, esi
call fcn.0041f8f8
add dword [ebp - 0x18], 0x104
inc edi
cmp edi, dword [ebp - 0x1c]
jl 0x41f8c1
jmp 0x41f86b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3f7d0]
call fcn.00414143
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret