Function at 0x10006940
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10009f38
mov eax, dword fs:[0]
push eax
sub esp, 0xb0
mov eax, dword [0x1000e018]
xor eax, esp
mov dword [esp + 0xa8], eax
push ebx
push esi
push edi
mov eax, dword [0x1000e018]
xor eax, esp
push eax
lea eax, [esp + 0xc0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push 0x1000e790
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], 0x1000e790
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor ebx, ebx
or esi, 0xffffffff
mov dword [esp + 0xc8], ebx
xor edi, edi
nop
cmp dword [edi*4 + 0x1000e760], ebx
je 0x100069c4
inc edi
cmp edi, 8
jl 0x100069b0
jmp 0x100071ea
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], edi
cmp edi, 0xffffffff
je 0x100071e6
push 0x4c
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov esi, eax
add esp, 4
mov dword [esp + 0x28], esi
mov byte [esp + 0xc8], 1
cmp esi, ebx
je 0x10006a69
push esi
call fcn.10003b70
mov byte [esp + 0xc8], 2
mov dword [esi], vtable.TRKController.0
push 0x18
mov dword [esi + 0x38], ebx
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x10006a3f
mov dword [esi + 0x34], eax
mov dword [eax], eax
mov eax, dword [esi + 0x34]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x34]
mov dword [eax + 8], eax
mov edx, dword [esi + 0x34]
mov byte [edx + 0x14], 1
mov eax, dword [esi + 0x34]
mov byte [eax + 0x15], 1
mov dword [esi], vtable.Controller.0
jmp 0x10006a6b
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], ebx
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x1000bf10
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x40], vtable.std::bad_alloc.0
call sub.MSVCR100.dll__CxxThrowException
xor esi, esi
mov byte [esp + 0xc8], bl
push 0x48
mov dword [edi*4 + 0x1000e760], esi
mov dword [esp + 0x20], ebx
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
cmp eax, ebx
je 0x10007244
mov dword [esp + 0x18], eax
mov dword [eax], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 8], eax
mov eax, dword [esp + 0x18]
mov byte [eax + 0x44], 1
mov ecx, dword [esp + 0x18]
mov byte [ecx + 0x45], 1
lea edx, [esp + 0x14]
push edx
mov ecx, str.typeTRKController_name_params_interval10_DELAY5_CountSendCommand1_VolumeFactor1000_SumFactor100_AlarmReset0__connection_timeout500_
mov byte [esp + 0xcc], 3
call fcn.10008940
add esp, 4
mov edi, 0xa
mov eax, str.connection
lea esi, [esp + 0x64]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.10002290
mov eax, esi
push eax
lea eax, [esp + 0x18]
mov byte [esp + 0xcc], 4
call fcn.10002360
mov esi, eax
cmp esi, dword [esp + 0x18]
je 0x10006b66
mov edi, dword [esi + 0x1c]
mov edx, 0x10
cmp dword [esi + 0x20], edx
jb 0x10006b1f
mov ecx, dword [esi + 0xc]
jmp 0x10006b22
lea ecx, [esi + 0xc]
mov eax, dword [esp + 0x74]
cmp eax, edi
jb 0x10006b2c
mov eax, edi
cmp dword [esp + 0x78], edx
mov edx, dword [esp + 0x64]
jae 0x10006b3a
lea edx, [esp + 0x64]
call fcn.100011c0
cmp eax, ebx
jne 0x10006b5b
mov eax, dword [esp + 0x74]
cmp eax, edi
jae 0x10006b50
or eax, 0xffffffff
jmp 0x10006b59
xor ecx, ecx
cmp eax, edi
setne cl
mov eax, ecx
cmp eax, ebx
setl al
cmp al, bl
je 0x10006cd8
mov eax, 0xf
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov byte [esp + 0xc8], 5
lea edx, [esp + 0x64]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
push edx
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [esp + 0x84]
call fcn.10002460
cmp dword [esp + 0x5c], 0x10
mov dword [esp + 0xb0], 0xf
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
jae 0x10006be8
mov eax, dword [esp + 0x58]
inc eax
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xa4]
push ecx
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
jmp 0x10006bf7
mov edx, dword [esp + 0x48]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
lea ecx, [esp + 0x80]
lea edx, [esp + 0x14]
mov byte [esp + 0xc8], 7
call fcn.10002f20
push eax
push esi
lea esi, [esp + 0x18]
lea edi, [esp + 0x1c]
call fcn.100027f0
cmp dword [esp + 0xb0], 0x10
mov esi, dword [esp + 0x10]
jb 0x10006c63
mov edx, dword [esp + 0x9c]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp dword [esp + 0x94], 0x10
mov edi, 0xf
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
jb 0x10006c98
mov eax, dword [esp + 0x80]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0xc8], 4
cmp dword [esp + 0x5c], 0x10
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
jb 0x10006cca
mov ecx, dword [esp + 0x48]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x5c], edi
xor ebx, ebx
mov edi, 0x10
cmp dword [esi + 0x3c], edi
jb 0x10006ce7
mov ecx, dword [esi + 0x28]
jmp 0x10006cea
lea ecx, [esi + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [edx*4 + 0x1000e760]
add eax, 0x10
push eax
call fcn.10008940
add esp, 4
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x78], edi
jb 0x10006d1d
mov eax, dword [esp + 0x64]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, 6
mov eax, str.params
lea esi, [esp + 0x64]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.10002290
mov ecx, esi
push ecx
lea eax, [esp + 0x18]
mov byte [esp + 0xcc], 8
call fcn.10002360
mov esi, eax
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 0x18]
je 0x10006dba
lea eax, [esi + 0xc]
mov esi, dword [eax + 0x10]
mov edx, 0x10
cmp dword [eax + 0x14], edx
jb 0x10006d74
mov ecx, dword [eax]
jmp 0x10006d76
mov ecx, eax
mov edi, dword [esp + 0x74]
mov eax, edi
cmp edi, esi
jb 0x10006d82
mov eax, esi
cmp dword [esp + 0x78], edx
mov edx, dword [esp + 0x64]
jae 0x10006d90
lea edx, [esp + 0x64]
call fcn.100011c0
cmp eax, ebx
jne 0x10006dab
cmp edi, esi
jae 0x10006da2
or eax, 0xffffffff
jmp 0x10006da9
xor eax, eax
cmp edi, esi
setne al
cmp eax, ebx
setl al
cmp al, bl
je 0x10006f2f
mov esi, dword [esp + 0x10]
mov eax, 0xf
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov byte [esp + 0xc8], 9
lea edx, [esp + 0x64]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
push edx
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [esp + 0x84]
call fcn.10002460
cmp dword [esp + 0x5c], 0x10
mov edi, 0xf
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
jae 0x10006e3d
mov eax, dword [esp + 0x58]
inc eax
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xa4]
push ecx
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
jmp 0x10006e4c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x9c], edx
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
lea ecx, [esp + 0x80]
lea edx, [esp + 0x14]
mov byte [esp + 0xc8], 0xb
call fcn.10002f20
push eax
push esi
lea esi, [esp + 0x18]
lea edi, [esp + 0x1c]
call fcn.100027f0
mov edx, dword [esp + 0x10]
mov edi, 0x10
mov dword [esp + 0x10], edx
cmp dword [esp + 0xb0], edi
jb 0x10006ebc
mov eax, dword [esp + 0x9c]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, 0xf
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
cmp dword [esp + 0x94], edi
jb 0x10006ef0
mov ecx, dword [esp + 0x80]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0xc8], 8
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x5c], edi
jb 0x10006f21
mov edx, dword [esp + 0x48]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x5c], esi
xor ebx, ebx
mov eax, dword [esp + 0x10]
add eax, 0x28
mov esi, 0x10
cmp dword [eax + 0x14], esi
jb 0x10006f42
mov eax, dword [eax]
mov ecx, eax
mov eax, dword [esp + 0x24]
mov edx, dword [eax*4 + 0x1000e760]
call fcn.10003900
mov byte [esp + 0xc8], 3
cmp dword [esp + 0x78], esi
jb 0x10006f70
mov ecx, dword [esp + 0x64]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, 4
mov eax, str.name
lea esi, [esp + 0x64]
mov dword [esp + 0x78], 0xf
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
call fcn.10002290
mov edx, esi
push edx
lea eax, [esp + 0x18]
mov byte [esp + 0xcc], 0xc
call fcn.10002360
mov esi, eax
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 0x18]
je 0x1000700d
lea eax, [esi + 0xc]
mov esi, dword [eax + 0x10]
mov edx, 0x10
cmp dword [eax + 0x14], edx
jb 0x10006fc7
mov ecx, dword [eax]
jmp 0x10006fc9
mov ecx, eax
mov edi, dword [esp + 0x74]
mov eax, edi
cmp edi, esi
jb 0x10006fd5
mov eax, esi
cmp dword [esp + 0x78], edx
mov edx, dword [esp + 0x64]
jae 0x10006fe3
lea edx, [esp + 0x64]
call fcn.100011c0
cmp eax, ebx
jne 0x10006ffe
cmp edi, esi
jae 0x10006ff5
or eax, 0xffffffff
jmp 0x10006ffc
xor eax, eax
cmp edi, esi
setne al
cmp eax, ebx
setl al
cmp al, bl
je 0x10007180
mov esi, dword [esp + 0x10]
mov eax, 0xf
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov byte [esp + 0xc8], 0xd
mov dword [esp + 0x94], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
push eax
or eax, 0xffffffff
xor ebx, ebx
lea ecx, [esp + 0x84]
call fcn.10002460
cmp dword [esp + 0x5c], 0x10
mov edi, 0xf
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
jae 0x10007090
mov eax, dword [esp + 0x58]
inc eax
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0xa4]
push edx
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
jmp 0x1000709f
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x48], ebx
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
lea ecx, [esp + 0x80]
lea edx, [esp + 0x14]
mov byte [esp + 0xc8], 0xf
call fcn.10002f20
push eax
push esi
lea esi, [esp + 0x18]
lea edi, [esp + 0x1c]
call fcn.100027f0
mov eax, dword [esp + 0x10]
mov esi, 0x10
mov dword [esp + 0x10], eax
cmp dword [esp + 0xb0], esi
jb 0x1000710f
mov ecx, dword [esp + 0x9c]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov edi, 0xf
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], ebx
mov byte [esp + 0x9c], bl
cmp dword [esp + 0x94], esi
jb 0x10007143
mov edx, dword [esp + 0x80]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0xc8], 0xc
mov dword [esp + 0x94], edi
mov dword [esp + 0x90], ebx
mov byte [esp + 0x80], bl
cmp dword [esp + 0x5c], esi
jb 0x10007174
mov eax, dword [esp + 0x48]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov eax, dword [esp + 0x10]
add eax, 0x28
cmp dword [eax + 0x14], 0x10
jb 0x1000718f
mov eax, dword [eax]
push 0x1000e100
mov ebx, eax
call fcn.10004980
mov ebx, 0x10
cmp dword [esp + 0x78], ebx
jb 0x100071b4
mov ecx, dword [esp + 0x64]
push ecx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov byte [esp + 0xc8], bl
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x30]
lea esi, [esp + 0x1c]
call fcn.10003ed0
mov byte [esp + 0xc8], 0
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov esi, dword [esp + 0x2c]
mov edx, dword [esi*4 + 0x1000e760]
mov ecx, dword [esp + 0x34]
add edx, 0x10
push edx
call fcn.10008940
mov ecx, dword [esp + 0x34]
mov edx, dword [esi*4 + 0x1000e760]
add esp, 4
call fcn.10003900
push 0x1000e790
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
mov ecx, dword [esp + 0xc0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa8]
xor ecx, esp
call fcn.10008c0e
mov esp, ebp
pop ebp
ret 8
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x3c]
mov dword [esp + 0x2c], ebx
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x1000bf10
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x40], vtable.std::bad_alloc.0
call sub.MSVCR100.dll__CxxThrowException
int3