Function at 0x421a1e
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:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
lea eax, [ebp + 0xc]
xor ebx, ebx
push esi
test eax, eax
push edi
mov dword [ebp - 0x10], ecx
jne 0x42237f
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421a86
call esi
test eax, eax
je 0x421a73
cmp byte [ebp - 3], 0x3a
jne 0x421a73
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421a9d
call esi
test eax, eax
je 0x421a9d
cmp byte [ebp - 3], 0x3a
jne 0x421a9d
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421ade
call esi
test eax, eax
je 0x421acb
cmp byte [ebp - 3], 0x3a
jne 0x421acb
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421af5
call esi
test eax, eax
je 0x421af5
cmp byte [ebp - 3], 0x3a
jne 0x421af5
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421b38
call esi
test eax, eax
je 0x421b25
cmp byte [ebp - 3], 0x3a
jne 0x421b25
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421b4f
call esi
test eax, eax
je 0x421b4f
cmp byte [ebp - 3], 0x3a
jne 0x421b4f
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421b92
call esi
test eax, eax
je 0x421b7f
cmp byte [ebp - 3], 0x3a
jne 0x421b7f
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421ba9
call esi
test eax, eax
je 0x421ba9
cmp byte [ebp - 3], 0x3a
jne 0x421ba9
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421beb
call esi
test eax, eax
je 0x421bd8
cmp byte [ebp - 3], 0x3a
jne 0x421bd8
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421c02
call esi
test eax, eax
je 0x421c02
cmp byte [ebp - 3], 0x3a
jne 0x421c02
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetHandleCount]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421c43
call esi
test eax, eax
je 0x421c30
cmp byte [ebp - 3], 0x3a
jne 0x421c30
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421c5a
call esi
test eax, eax
je 0x421c5a
cmp byte [ebp - 3], 0x3a
jne 0x421c5a
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421c9f
call esi
test eax, eax
je 0x421c8c
cmp byte [ebp - 3], 0x3a
jne 0x421c8c
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421cb6
call esi
test eax, eax
je 0x421cb6
cmp byte [ebp - 3], 0x3a
jne 0x421cb6
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_PulseEvent]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421cf7
call esi
test eax, eax
je 0x421ce4
cmp byte [ebp - 3], 0x3a
jne 0x421ce4
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421d0e
call esi
test eax, eax
je 0x421d0e
cmp byte [ebp - 3], 0x3a
jne 0x421d0e
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421d4f
call esi
test eax, eax
je 0x421d3c
cmp byte [ebp - 3], 0x3a
jne 0x421d3c
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421d66
call esi
test eax, eax
je 0x421d66
cmp byte [ebp - 3], 0x3a
jne 0x421d66
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421da8
call esi
test eax, eax
je 0x421d95
cmp byte [ebp - 3], 0x3a
jne 0x421d95
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421dbf
call esi
test eax, eax
je 0x421dbf
cmp byte [ebp - 3], 0x3a
jne 0x421dbf
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421e00
call esi
test eax, eax
je 0x421ded
cmp byte [ebp - 3], 0x3a
jne 0x421ded
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421e17
call esi
test eax, eax
je 0x421e17
cmp byte [ebp - 3], 0x3a
jne 0x421e17
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421e58
call esi
test eax, eax
je 0x421e45
cmp byte [ebp - 3], 0x3a
jne 0x421e45
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421e6f
call esi
test eax, eax
je 0x421e6f
cmp byte [ebp - 3], 0x3a
jne 0x421e6f
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421eb4
call esi
test eax, eax
je 0x421ea1
cmp byte [ebp - 3], 0x3a
jne 0x421ea1
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421ecb
call esi
test eax, eax
je 0x421ecb
cmp byte [ebp - 3], 0x3a
jne 0x421ecb
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421f0d
call esi
test eax, eax
je 0x421efa
cmp byte [ebp - 3], 0x3a
jne 0x421efa
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421f24
call esi
test eax, eax
je 0x421f24
cmp byte [ebp - 3], 0x3a
jne 0x421f24
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421f68
call esi
test eax, eax
je 0x421f55
cmp byte [ebp - 3], 0x3a
jne 0x421f55
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421f7f
call esi
test eax, eax
je 0x421f7f
cmp byte [ebp - 3], 0x3a
jne 0x421f7f
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x421fc1
call esi
test eax, eax
je 0x421fae
cmp byte [ebp - 3], 0x3a
jne 0x421fae
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x421fd8
call esi
test eax, eax
je 0x421fd8
cmp byte [ebp - 3], 0x3a
jne 0x421fd8
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x42201b
call esi
test eax, eax
je 0x422008
cmp byte [ebp - 3], 0x3a
jne 0x422008
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x422032
call esi
test eax, eax
je 0x422032
cmp byte [ebp - 3], 0x3a
jne 0x422032
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x422073
call esi
test eax, eax
je 0x422060
cmp byte [ebp - 3], 0x3a
jne 0x422060
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x42208a
call esi
test eax, eax
je 0x42208a
cmp byte [ebp - 3], 0x3a
jne 0x42208a
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x4220cb
call esi
test eax, eax
je 0x4220b8
cmp byte [ebp - 3], 0x3a
jne 0x4220b8
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x4220e2
call esi
test eax, eax
je 0x4220e2
cmp byte [ebp - 3], 0x3a
jne 0x4220e2
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x422123
call esi
test eax, eax
je 0x422110
cmp byte [ebp - 3], 0x3a
jne 0x422110
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x42213a
call esi
test eax, eax
je 0x42213a
cmp byte [ebp - 3], 0x3a
jne 0x42213a
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x42217c
call esi
test eax, eax
je 0x422169
cmp byte [ebp - 3], 0x3a
jne 0x422169
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x422193
call esi
test eax, eax
je 0x422193
cmp byte [ebp - 3], 0x3a
jne 0x422193
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetComputerNameA]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x4221d4
call esi
test eax, eax
je 0x4221c1
cmp byte [ebp - 3], 0x3a
jne 0x4221c1
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x4221eb
call esi
test eax, eax
je 0x4221eb
cmp byte [ebp - 3], 0x3a
jne 0x4221eb
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetEvent]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x42222c
call esi
test eax, eax
je 0x422219
cmp byte [ebp - 3], 0x3a
jne 0x422219
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x422243
call esi
test eax, eax
je 0x422243
cmp byte [ebp - 3], 0x3a
jne 0x422243
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SleepEx]
lea eax, [ebp + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x422285
call esi
test eax, eax
je 0x422272
cmp byte [ebp - 3], 0x3a
jne 0x422272
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x42229c
call esi
test eax, eax
je 0x42229c
cmp byte [ebp - 3], 0x3a
jne 0x42229c
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x4222df
call esi
test eax, eax
je 0x4222cc
cmp byte [ebp - 3], 0x3a
jne 0x4222cc
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x4222f6
call esi
test eax, eax
je 0x4222f6
cmp byte [ebp - 3], 0x3a
jne 0x4222f6
movzx eax, byte [ebp - 4]
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 + 0xc]
cmp eax, 0x4db
lea eax, [ebp - 4]
push eax
push 3
jne 0x422368
call esi
test eax, eax
je 0x422355
cmp byte [ebp - 3], 0x3a
jne 0x422355
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
lea eax, [ebp - 8]
mov byte [ebp - 8], 0x42
push eax
mov byte [ebp - 7], 0x3a
mov byte [ebp - 6], bl
call edi
jmp 0x42237f
call esi
test eax, eax
je 0x42237f
cmp byte [ebp - 3], 0x3a
jne 0x42237f
movzx eax, byte [ebp - 4]
push eax
call sub.MSVCRT.dll_toupper
pop ecx
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0xc], ebx
mov dword [edi], ebx
cmp dword [esi + 0x3f7a8], ebx
jle 0x422416
lea eax, [esi + 0x1fbd8]
mov dword [ebp + 0xc], eax
cmp dword [esi + 0x1fbd4], ebx
mov dword [ebp - 4], ebx
jle 0x4223dc
lea eax, [esi + 4]
mov dword [ebp - 8], eax
push dword [ebp - 8]
mov eax, dword [0x4453d0]
push dword [ebp + 0xc]
call dword [eax + 0x1e0]
pop ecx
test eax, eax
pop ecx
je 0x422401
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add dword [ebp - 8], 0x104
cmp eax, dword [esi + 0x1fbd4]
jl 0x4223b0
inc dword [edi]
mov eax, dword [edi]
imul eax, eax, 0x104
mov ecx, dword [ebp + 8]
push dword [ebp + 0xc]
lea eax, [eax + ecx - 0x104]
push eax
mov eax, dword [0x4453d0]
call dword [eax + 0x1e8]
pop ecx
pop ecx
inc dword [ebp - 0xc]
add dword [ebp + 0xc], 0x104
mov eax, dword [ebp - 0xc]
cmp eax, dword [esi + 0x3f7a8]
jl 0x42239f
pop edi
pop esi
pop ebx
leave
ret 8