Function at 0x10001990
Capabilities:
Create thread

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10005700
push eax
mov eax, dword [esp + 0x10]
mov dword fs:[0], esp
sub esp, 0x24
push ebx
xor ebx, ebx
push ebp
push esi
cmp eax, ebx
push edi
jne 0x10001bfc
mov ecx, 0x4e2
xor eax, eax
mov edi, 0x10009218
mov dword [0x1000a5a0], ebx
rep stosd dword es:[edi], eax
mov eax, dword [0x1000a6cc]
push ebx
push ebx
push 0x18b
mov ecx, dword [eax + 0x80]
xor ebp, ebp
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, ebx
jle 0x10001a82
mov ebx, 0x10009218
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [0x1000a6cc]
lea edx, [esp + 0x44]
push edx
push ebp
lea ecx, [eax + 0x60]
mov dword [esp + 0x44], 0
call sub.MFC42.DLL_CListBox::GetText
mov edi, dword [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x3c], 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [0x1000a5a0]
lea ecx, [esp + 0x44]
inc esi
mov dword [0x1000a5a0], esi
call fcn.10004204
mov eax, dword [0x1000a6cc]
push 0
push 0
push 0x18b
mov ecx, dword [eax + 0x80]
inc ebp
push ecx
add ebx, 0x32
call dword [sym.imp.USER32.dll_SendMessageA]
cmp ebp, eax
jl 0x100019f6
xor ebx, ebx
mov eax, dword [0x10009024]
mov ebp, dword [0x10009020]
mov dword [esp + 0x1c], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
lea edx, [eax + eax*2]
mov byte [esp + 0x14], 0
shl edx, 1
sub ebp, edx
xor eax, eax
mov dword [esp + 0x21], eax
mov byte [esp + 0x20], 0
mov dword [esp + 0x25], eax
mov dword [esp + 0x44], 0x2e
mov dword [esp + 0x29], eax
mov dword [esp + 0x2d], eax
mov word [esp + 0x31], ax
mov byte [esp + 0x33], al
xor ecx, ecx
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x14]
mov dword [esp + 0x24], ecx
lea eax, [ebp - 1]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
push ecx
push 1
push edx
push eax
mov dword [esp + 0x40], ecx
call esi
push eax
call ebx
mov ecx, dword [esp + 0x14]
push 0
and ecx, 0xff
lea edx, [esp + 0x24]
push ecx
push edx
push ebp
call esi
push eax
call ebx
mov ecx, dword [0x10009028]
push 0
lea eax, [esp + 0x20]
push 4
add ecx, ebp
push eax
push ecx
call esi
push eax
call ebx
mov al, byte [esp + 0x14]
test al, al
je 0x10001bd2
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0x20]
push 0x100090a4
push edx
call esi
add esp, 8
test eax, eax
jne 0x10001b5f
lea eax, [esp + 0x20]
push 0x10009098
push eax
call esi
add esp, 8
test eax, eax
je 0x10001b92
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov esi, edi
mov edi, 0x1000a5a4
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
mov dword [0x1000a5c4], eax
lea ecx, [esp + 0x20]
push 0x10009090
push ecx
call esi
add esp, 8
test eax, eax
je 0x10001bd2
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov esi, edi
mov edi, 0x1000a5c8
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [0x1000a5e8], eax
mov ecx, dword [0x10009024]
mov eax, dword [esp + 0x44]
add ebp, ecx
dec eax
mov dword [esp + 0x44], eax
jne 0x10001acb
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
cmp eax, 1
jne 0x10001d20
mov eax, dword [0x10009024]
mov esi, dword [0x10009020]
mov edi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ecx, [eax + eax*2]
mov dword [esp + 0x1c], ebx
shl ecx, 1
sub esi, ecx
xor edx, edx
mov dword [esp + 0x21], edx
mov byte [esp + 0x44], 0
mov dword [esp + 0x25], edx
mov byte [esp + 0x20], 0
mov dword [esp + 0x29], edx
mov dword [esp + 0x2d], edx
mov word [esp + 0x31], dx
mov byte [esp + 0x33], dl
xor eax, eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x20], eax
lea edx, [esi - 1]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
push eax
push 1
push ecx
push edx
mov dword [esp + 0x40], eax
call ebp
push eax
call edi
mov eax, dword [esp + 0x44]
push 0
and eax, 0xff
lea ecx, [esp + 0x24]
push eax
push ecx
push esi
call ebp
push eax
call edi
mov eax, dword [0x10009028]
push 0
lea edx, [esp + 0x20]
push 4
add eax, esi
push edx
push eax
call ebp
push eax
call edi
mov al, byte [esp + 0x44]
test al, al
je 0x10001cd6
lea ecx, [esp + 0x20]
push 0x100090a4
push ecx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x10001cfb
lea edx, [esp + 0x20]
push 0x10009098
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x10001cfb
mov edx, dword [0x10009024]
add esi, edx
inc ebx
cmp ebx, 0x2e
jl 0x10001c4c
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.10001540
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
cmp eax, 2
jne 0x10001d6f
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [0x1000a6cc]
lea edx, [esp + 0x44]
push edx
push 0x4a5
mov dword [esp + 0x44], 1
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
push ebx
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.100014f0
add esp, 4
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x44]
jmp 0x100021ed
cmp eax, 3
jne 0x10001dbe
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [0x1000a6cc]
lea eax, [esp + 0x44]
push eax
push 0x4a7
mov dword [esp + 0x44], 2
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
push ebx
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.100014f0
add esp, 4
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x44]
jmp 0x100021ed
cmp eax, 4
jne 0x10001ddb
call fcn.100016f0
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
cmp eax, 0x29
jne 0x10001e2a
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x44]
mov dword [esp + 0x3c], 3
push ecx
mov ecx, dword [0x1000a6cc]
push 0x4b3
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
push ebx
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.100016a0
add esp, 4
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x44]
jmp 0x100021ed
cmp eax, 0x1f
jne 0x10001e79
xor edx, edx
push ebx
mov dword [esp + 0x28], edx
push ebx
mov dword [esp + 0x30], edx
push ebx
push ebx
lea eax, [esp + 0x30]
mov dword [esp + 0x3c], edx
push 0x1d52
push eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], edx
call fcn.10002a60
lea ecx, [esp + 0x38]
push ebx
push ecx
call fcn.10001410
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24]
mov dword fs:[0], ecx
add esp, 0x30
ret
cmp eax, 0x20
jne 0x10001f69
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x44]
mov dword [esp + 0x3c], 4
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [0x1000a6cc]
lea edx, [esp + 0x1c]
push edx
push 0x4af
mov byte [esp + 0x44], 5
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov ecx, dword [0x1000a6cc]
push 1
push ebx
push 0x482
call sub.MFC42.DLL_CWnd::GetDlgItemInt
mov ecx, dword [0x1000a6cc]
mov esi, eax
lea eax, [esp + 0x44]
push eax
push 0x483
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov eax, dword [esp + 0x1c]
cmp dword [eax - 8], ebx
je 0x10001f2b
push 0x1000908c
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x10001f2b
cmp dword [0x1000a5f0], esi
jge 0x10001f2b
mov ecx, dword [esp + 0x44]
cmp dword [ecx - 8], ebx
je 0x10001f2b
push ebx
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.10001590
mov eax, dword [0x1000a5f8]
add esp, 4
inc eax
mov dword [0x1000a5f8], eax
cmp dword [0x1000a5f8], 6
jl 0x10001f4a
push ebx
push ebx
push ebx
push 0x100018d0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x1000a5f8], ebx
lea ecx, [esp + 0x44]
mov byte [esp + 0x3c], 4
call fcn.10004204
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x1c]
jmp 0x100021ed
cmp eax, 0x141
jne 0x100020b7
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_1
mov ebx, 6
lea ecx, [esp + 0x44]
mov dword [esp + 0x3c], ebx
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [0x1000a6cc]
lea edx, [esp + 0x14]
push edx
push 0x4b0
mov byte [esp + 0x44], 7
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov ecx, dword [0x1000a6cc]
push 1
push 0
push 0x485
call sub.MFC42.DLL_CWnd::GetDlgItemInt
mov ecx, dword [0x1000a6cc]
mov esi, eax
lea eax, [esp + 0x44]
push eax
push 0x484
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x1000202a
push 0x1000908c
push eax
call edi
add esp, 8
test eax, eax
jne 0x10002026
cmp dword [0x1000a5f0], esi
jge 0x10002026
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx - 8]
test eax, eax
je 0x10002026
push 0
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.10001590
mov eax, dword [0x1000a5f8]
add esp, 4
inc eax
mov dword [0x1000a5f8], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x10002072
push 0x10009088
push eax
call edi
add esp, 8
test eax, eax
jne 0x10002072
cmp dword [0x1000a5f4], esi
jge 0x10002072
mov edx, dword [esp + 0x44]
mov eax, dword [edx - 8]
test eax, eax
je 0x10002072
push 0
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.10001590
mov eax, dword [0x1000a5f8]
add esp, 4
inc eax
mov dword [0x1000a5f8], eax
cmp dword [0x1000a5f8], ebx
jl 0x10002099
push 0
push 0
push 0
push 0x100018d0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x1000a5f8], 0
lea ecx, [esp + 0x44]
mov byte [esp + 0x3c], bl
call fcn.10004204
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x14]
jmp 0x100021ed
cmp eax, 0x142
jne 0x100021f2
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x10]
mov dword [esp + 0x3c], 8
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [0x1000a6cc]
lea eax, [esp + 0x18]
push eax
push 0x4b1
mov byte [esp + 0x44], 9
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov ecx, dword [0x1000a6cc]
push 1
push ebx
push 0x487
call sub.MFC42.DLL_CWnd::GetDlgItemInt
lea ecx, [esp + 0x10]
mov esi, eax
push ecx
mov ecx, dword [0x1000a6cc]
push 0x486
call sub.MFC42.DLL_CWnd::GetDlgItemTextA
mov eax, dword [esp + 0x18]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
cmp dword [eax - 8], ebx
je 0x10002171
push 0x1000908c
push eax
call edi
add esp, 8
test eax, eax
jne 0x1000216d
cmp dword [0x1000a5f0], esi
jge 0x1000216d
mov edx, dword [esp + 0x10]
cmp dword [edx - 8], ebx
je 0x1000216d
push ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.10001590
mov eax, dword [0x1000a5f8]
add esp, 4
inc eax
mov dword [0x1000a5f8], eax
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], ebx
je 0x100021b4
push 0x10009088
push eax
call edi
add esp, 8
test eax, eax
jne 0x100021b4
cmp dword [0x1000a5f4], esi
jge 0x100021b4
mov eax, dword [esp + 0x10]
cmp dword [eax - 8], ebx
je 0x100021b4
push ebx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::GetBuffer
push eax
call fcn.10001590
mov eax, dword [0x1000a5f8]
add esp, 4
inc eax
mov dword [0x1000a5f8], eax
cmp dword [0x1000a5f8], 6
jl 0x100021d3
push ebx
push ebx
push ebx
push 0x100018d0
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x1000a5f8], ebx
lea ecx, [esp + 0x10]
mov byte [esp + 0x3c], 8
call fcn.10004204
mov dword [esp + 0x3c], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.10004204
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x30
ret