Function at 0x10002595
Capabilities:
Create thread

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
mov ebx, 4
push edi
mov edi, dword [sym.imp.MSVCRT.dll_malloc]
push ebx
call edi
mov esi, eax
add esp, 4
test esi, esi
je 0x10002708
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
dec eax
cmp eax, 0xf
ja case.0x10002394.3
jmp dword [eax*4 + 0x10002710]
push 0x270
call edi
mov esi, eax
add esp, 4
test esi, esi
jne 0x100023ba
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
push esi
lea ecx, [esp + 0x14]
call fcn.10001c80
test eax, eax
jne 0x100023d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], ebx
shl ecx, 3
push edx
push eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
call fcn.100039a0
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, dword [esp + 0x30]
push ecx
lea ecx, [esp + 0x14]
call fcn.100019e0
mov esi, eax
test esi, esi
jne 0x100026b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov ebx, dword [esp + 0x34]
xor esi, esi
test ebx, ebx
jbe 0x1000245e
mov ebp, dword [esp + 0x30]
lea edi, [esi + ebp]
lea ecx, [esp + 0x10]
push edi
call fcn.10001970
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea esi, [esi + ecx + 1]
cmp esi, ebx
jb 0x1000243f
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x18]
push ecx
push edx
mov dword [esp + 0x20], 1
call fcn.100039a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov edx, dword [esp + 0x30]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [sym.imp.MSVCRT.dll__mbscmp]
push str._NULL_
not ecx
dec ecx
push edx
mov ebx, edx
lea esi, [ecx + edx + 1]
call edi
add esp, 8
test eax, eax
jne 0x100024ad
xor ebx, ebx
push str._NULL_
push esi
call edi
add esp, 8
test eax, eax
jne 0x100024be
xor esi, esi
push esi
push ebx
lea ecx, [esp + 0x18]
call fcn.100019a0
test eax, eax
jne 0x100024dc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x18]
push eax
push ecx
mov dword [esp + 0x20], 1
call fcn.100039a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
add eax, 4
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.100019c0
jmp 0x10002665
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x10]
push esi
call fcn.10001c30
test eax, eax
jne 0x10002538
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
push esi
lea ecx, [esp + 0x14]
call fcn.10001ea0
test eax, eax
mov dword [esp + 0x20], eax
jne 0x10002559
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 0x24
push edx
jmp 0x1000263c
mov esi, dword [esp + 0x30]
lea ecx, [esp + 0x10]
push esi
call fcn.10001c70
test eax, eax
jne 0x10002538
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov ecx, dword [esp + 0x30]
push ecx
push ebp
call fcn.10003420
add esp, 8
test eax, eax
jne 0x100025b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
lea edx, [esp + 0x14]
mov dword [esi], eax
push edx
push 0
push esi
push 0x10002750
push 0
push 0
call dword [sym.imp.MSVCRT.dll__beginthreadex]
add esp, 0x18
test eax, eax
je 0x10002708
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov eax, 1
mov dword [0x10096b70], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push ebp
call fcn.100039a0
add esp, 8
mov ecx, dword [esp + 0x30]
push ecx
lea ecx, [esp + 0x14]
call fcn.10001ea0
test eax, eax
mov dword [esp + 0x20], eax
jne 0x1000262a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
lea edx, [esp + 0x18]
mov dword [esp + 0x18], ebx
push edx
mov dword [esp + 0x20], 0x24
push ebp
call fcn.100039a0
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, dword [esp + 0x30]
push ecx
lea ecx, [esp + 0x14]
call fcn.10001ee0
test eax, eax
jne 0x10002675
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], 1
call fcn.100039a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov ecx, dword [esp + 0x30]
push ecx
lea ecx, [esp + 0x14]
call fcn.10001f40
mov esi, eax
test esi, esi
jne 0x100026b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x1c], eax
jmp 0x100026f2
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x18]
push edx
push eax
mov dword [esp + 0x20], 3
mov dword [esp + 0x28], esi
call fcn.100039a0
push esi
call fcn.10002ad0
push esi
call dword [sym.imp.MSVCRT.dll_free]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
mov dword [esp + 0x1c], 0x10000004
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0
push ecx
push ebp
call fcn.100039a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret