Function at 0x100034b3
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
push edi
mov dword [ebp - 0x310], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x310]
cmp dword [eax], 0
je 0x100034e0
mov ecx, dword [ebp - 0x310]
call fcn.1000383a
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edx, dword [ebp - 0x310]
mov dword [edx + 0x320], eax
mov eax, dword [ebp - 0x310]
cmp dword [eax + 0x320], 0
jne 0x1000350a
jmp 0x10003735
push str.MsmConn_new
mov ecx, dword [ebp - 0x310]
mov edx, dword [ecx + 0x320]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x330], eax
push str.MsmConn_delete
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x334], eax
push str.MsmConn_conn
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x338], eax
push str.MsmConn_disc
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x33c], eax
push str.MsmConn_testAtCmd
mov edx, dword [ebp - 0x310]
mov eax, dword [edx + 0x320]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x310]
mov dword [ecx + 0x340], eax
mov edx, dword [ebp - 0x310]
cmp dword [edx + 0x330], 0
je 0x10003609
mov eax, dword [ebp - 0x310]
cmp dword [eax + 0x334], 0
je 0x10003609
mov ecx, dword [ebp - 0x310]
cmp dword [ecx + 0x338], 0
je 0x10003609
mov edx, dword [ebp - 0x310]
cmp dword [edx + 0x33c], 0
je 0x10003609
mov eax, dword [ebp - 0x310]
cmp dword [eax + 0x340], 0
jne 0x1000360e
jmp 0x10003735
mov byte [ebp - 0x308], 0
mov ecx, 0x3f
xor eax, eax
lea edi, [ebp - 0x307]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x108], 0
mov ecx, 0x3f
xor eax, eax
lea edi, [ebp - 0x107]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov byte [ebp - 0x208], 0
mov ecx, 0x3f
xor eax, eax
lea edi, [ebp - 0x207]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 0x310]
call dword [ecx + 0x330]
mov edx, dword [ebp - 0x310]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x310]
cmp dword [eax + 8], 0
je 0x1000372b
lea ecx, [ebp - 8]
push ecx
push 0x100
lea edx, [ebp - 0x208]
push edx
push 0x100
lea eax, [ebp - 0x108]
push eax
push 0x100
lea ecx, [ebp - 0x308]
push ecx
push str.115200
mov edx, dword [ebp + 0xc]
push edx
push str.Bluetooth
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x310]
call dword [edx + 0x338]
add esp, 0x2c
mov dword [ebp - 0x30c], eax
cmp dword [ebp - 0x30c], 0
je 0x1000370b
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x310]
call dword [edx + 0x334]
add esp, 4
mov eax, dword [ebp - 0x310]
mov dword [eax + 8], 0
jmp 0x10003735
mov ecx, dword [ebp - 0x310]
mov edx, dword [ecx + 8]
push edx
mov eax, dword [ebp - 0x310]
call dword [eax + 0x340]
add esp, 4
mov dword [ebp - 4], 1
xor ecx, ecx
test ecx, ecx
jne 0x100034ca
mov edx, dword [ebp - 0x310]
cmp dword [edx + 8], 0
je 0x10003773
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x310]
call dword [edx + 0x33c]
add esp, 4
mov eax, dword [ebp - 0x310]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x310]
call dword [edx + 0x334]
add esp, 4
mov eax, dword [ebp - 0x310]
cmp dword [eax + 0x320], 0
je 0x100037a5
mov ecx, dword [ebp - 0x310]
mov edx, dword [ecx + 0x320]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x310]
mov dword [eax + 0x320], 0
mov ecx, dword [ebp - 0x310]
call fcn.10003b1e
mov eax, dword [ebp - 4]
pop edi
mov esp, ebp
pop ebp
ret 8