Function at 0x1011ffc0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x10359e26
mov eax, dword fs:[0]
push eax
sub esp, 0x478
mov eax, dword [0x10525930]
xor eax, esp
mov dword [esp + 0x470], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10525930]
xor eax, esp
push eax
lea eax, [esp + 0x48c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x4a4]
sub esp, 0x20
mov ebx, esp
mov dword [esp + 0x40], esp
push 0x104c2ef4
push 0x104dcc70
push str.__line:
sub esp, 0x20
mov dword [esp + 0x74], ecx
mov ecx, esp
mov dword [esp + 0x90], esp
push str.._logic_connection.cpp
mov dword [esp + 0x64], eax
mov dword [esp + 0x74], edx
call fcn.10003680
lea esi, [esp + 0x258]
call fcn.100af830
add esp, 0x20
mov esi, eax
xor edi, edi
push 0x104c3ebc
lea ecx, [esp + 0x1fc]
mov dword [esp + 0x4c4], edi
call fcn.10003680
push esi
push eax
lea eax, [esp + 0x1e0]
push eax
mov byte [esp + 0x4cc], 1
call fcn.10016ef0
add esp, 0xc
push eax
lea ecx, [esp + 0x1bc]
push ecx
mov byte [esp + 0x4c8], 2
call fcn.10016fa0
add esp, 0xc
push eax
lea edx, [esp + 0x218]
push edx
mov byte [esp + 0x4c4], 3
call fcn.10016fa0
add esp, 0xc
push eax
push ebx
mov byte [esp + 0x4c0], 4
call fcn.10016fa0
sub esp, 0x14
mov byte [esp + 0x4d4], 5
mov ecx, esp
mov dword [esp + 0x5c], esp
push str.connection::device_control
call fcn.10003680
lea ecx, [edi + 1]
lea edx, [esp + 0x49c]
mov byte [esp + 0x4d4], 4
call fcn.10053f40
mov ebx, 0x10
mov byte [esp + 0x494], 7
cmp dword [esp + 0x208], ebx
jb 0x1012011a
mov eax, dword [esp + 0x1f4]
push eax
call fcn.1025a370
add esp, 4
mov esi, 0xf
lea ecx, [esp + 0x1ec]
mov dword [esp + 0x208], esi
mov dword [esp + 0x204], edi
mov byte [esp + 0x1f4], 0
call fcn.10001370
mov byte [esp + 0x494], 8
cmp dword [esp + 0x1a8], ebx
jb 0x10120162
mov ecx, dword [esp + 0x194]
push ecx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x18c]
mov dword [esp + 0x1a8], esi
mov dword [esp + 0x1a4], edi
mov byte [esp + 0x194], 0
call fcn.10001370
mov byte [esp + 0x494], 9
cmp dword [esp + 0x1c8], ebx
jb 0x101201a5
mov edx, dword [esp + 0x1b4]
push edx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x1ac]
mov dword [esp + 0x1c8], esi
mov dword [esp + 0x1c4], edi
mov byte [esp + 0x1b4], 0
call fcn.10001370
mov byte [esp + 0x494], 0xa
cmp dword [esp + 0x1e8], ebx
jb 0x101201e8
mov eax, dword [esp + 0x1d4]
push eax
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x1cc]
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1e4], edi
mov byte [esp + 0x1d4], 0
call fcn.10001370
mov byte [esp + 0x494], 0xb
cmp dword [esp + 0x228], ebx
jb 0x1012022b
mov ecx, dword [esp + 0x214]
push ecx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x20c]
mov dword [esp + 0x228], esi
mov dword [esp + 0x224], edi
mov byte [esp + 0x214], 0
call fcn.10001370
mov edx, dword [esp + 0x49c]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.1012ac60
mov esi, eax
call fcn.1012bfc0
mov byte [esp + 0x494], 0xc
cmp dword [esp + 0x48], edi
jne 0x1012075c
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], 4
mov dword [esp + 0x28], ecx
call fcn.1005c450
mov eax, dword [eax]
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x1c]
push ecx
mov esi, eax
call fcn.10016d30
mov edx, dword [eax]
mov dword [esp + 0x14], edx
mov dword [eax], edi
mov byte [esp + 0x494], 0xd
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x101202c5
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x101206e3
jmp 0x101202d5
mov ebx, edi
push 0x104c2ef4
push 0x104dcc90
push str.__line:
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x4c], esp
push str.._logic_connection.cpp
call fcn.10003680
lea esi, [esp + 0xec]
call fcn.100af830
add esp, 0x20
mov esi, eax
push 0x104c3ebc
lea ecx, [esp + 0xf0]
mov byte [esp + 0x4a4], 0xe
call fcn.10003680
push esi
push eax
lea eax, [esp + 0xb4]
push eax
mov byte [esp + 0x4ac], 0xf
call fcn.10016ef0
add esp, 0xc
push eax
lea ecx, [esp + 0x90]
push ecx
mov byte [esp + 0x4a8], bl
call fcn.10016fa0
add esp, 0xc
push eax
lea edx, [esp + 0x6c]
push edx
mov byte [esp + 0x4a4], 0x11
call fcn.10016fa0
add esp, 0xc
push eax
lea eax, [esp + 0x114]
push eax
mov byte [esp + 0x4a0], 0x12
call fcn.10016fa0
add esp, 0xc
mov esi, eax
mov byte [esp + 0x494], 0x13
call fcn.1005c450
mov eax, dword [eax]
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x108]
push edx
call fcn.10016de0
add esp, 0xc
mov byte [esp + 0x494], 0x14
mov ecx, dword [eax + 4]
add ecx, 4
push str.invalid_session.
call fcn.10013de0
cmp dword [esi + 0x1c], 0x10
mov ebx, dword [esi + 0x18]
jb 0x101203cf
mov esi, dword [esi + 8]
jmp 0x101203d2
add esi, 8
push esi
mov ecx, eax
call fcn.10013de0
lea ecx, [esp + 0x100]
mov byte [esp + 0x494], 0x13
call fcn.100132f0
mov edi, 0x10
mov byte [esp + 0x494], 0x12
cmp dword [esp + 0x128], edi
jb 0x10120414
mov eax, dword [esp + 0x114]
push eax
call fcn.1025a370
add esp, 4
xor ebx, ebx
mov esi, 0xf
push 3
lea ecx, [esp + 0x2c]
mov dword [esp + 0x12c], esi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
call fcn.10239250
mov eax, dword [esp + 0x10c]
cmp eax, 0xfffffffd
je 0x1012046e
cmp eax, ebx
je 0x10120467
jmp 0x10120450
mov dword [eax], ebx
mov ecx, dword [esp + 0x10c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x10c], eax
cmp eax, ebx
jne 0x10120450
mov dword [esp + 0x10c], ebx
lea ecx, [esp + 0x28]
call fcn.10239290
mov byte [esp + 0x494], 0x11
cmp dword [esp + 0x7c], edi
jb 0x10120492
mov edx, dword [esp + 0x68]
push edx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x30]
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
call fcn.10239250
mov eax, dword [esp + 0x60]
cmp eax, 0xfffffffd
je 0x101204d5
cmp eax, ebx
je 0x101204d1
lea esp, [esp]
mov dword [eax], ebx
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 4]
mov dword [esp + 0x60], eax
cmp eax, ebx
jne 0x101204c0
mov dword [esp + 0x60], ebx
lea ecx, [esp + 0x2c]
call fcn.10239290
mov byte [esp + 0x494], 0x10
cmp dword [esp + 0x9c], edi
jb 0x101204ff
mov ecx, dword [esp + 0x88]
push ecx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x60]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x8c], bl
call fcn.10239250
mov eax, dword [esp + 0x80]
cmp eax, 0xfffffffd
je 0x1012054e
cmp eax, ebx
je 0x10120547
nop
mov dword [eax], ebx
mov edx, dword [esp + 0x80]
mov eax, dword [edx + 4]
mov dword [esp + 0x80], eax
cmp eax, ebx
jne 0x10120530
mov dword [esp + 0x80], ebx
lea ecx, [esp + 0x5c]
call fcn.10239290
mov byte [esp + 0x494], 0xf
cmp dword [esp + 0xbc], edi
jb 0x10120578
mov eax, dword [esp + 0xa8]
push eax
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x5c]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
call fcn.10239250
mov eax, dword [esp + 0xa0]
cmp eax, 0xfffffffd
je 0x101205ce
cmp eax, ebx
je 0x101205c7
jmp 0x101205b0
mov dword [eax], ebx
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + 4]
mov dword [esp + 0xa0], eax
cmp eax, ebx
jne 0x101205b0
mov dword [esp + 0xa0], ebx
lea ecx, [esp + 0x58]
call fcn.10239290
mov byte [esp + 0x494], 0xe
cmp dword [esp + 0xfc], edi
jb 0x101205f8
mov edx, dword [esp + 0xe8]
push edx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x34]
mov dword [esp + 0x100], esi
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], bl
call fcn.10239250
mov eax, dword [esp + 0xe0]
cmp eax, 0xfffffffd
je 0x1012064e
cmp eax, ebx
je 0x10120647
jmp 0x10120630
mov dword [eax], ebx
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 4]
mov dword [esp + 0xe0], eax
cmp eax, ebx
jne 0x10120630
mov dword [esp + 0xe0], ebx
lea ecx, [esp + 0x30]
call fcn.10239290
mov byte [esp + 0x494], 0xd
cmp dword [esp + 0xdc], edi
jb 0x10120678
mov ecx, dword [esp + 0xc8]
push ecx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x38]
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
call fcn.10239250
mov eax, dword [esp + 0xc0]
cmp eax, 0xfffffffd
je 0x101206ce
cmp eax, ebx
je 0x101206c7
jmp 0x101206b0
mov dword [eax], ebx
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 4]
mov dword [esp + 0xc0], eax
cmp eax, ebx
jne 0x101206b0
mov dword [esp + 0xc0], ebx
lea ecx, [esp + 0x34]
call fcn.10239290
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x101202d3
mov byte [esp + 0x494], 0xc
test eax, eax
je 0x10120700
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x14], 0
mov byte [esp + 0x494], 0xb
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x1012073a
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1012073a
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x1012073a
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
lea eax, [esp + 0x45c]
push eax
mov dword [esp + 0x498], 0xffffffff
call fcn.100542c0
mov eax, 0xc001000a
jmp 0x1012178c
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 2
mov dword [esp + 0x30], ecx
call fcn.1005c450
mov eax, dword [eax]
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x1c]
push ecx
mov esi, eax
call fcn.10016d30
mov edx, dword [eax]
mov dword [esp + 0x2c], edx
mov dword [eax], edi
mov byte [esp + 0x494], 0x15
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x101207a9
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x10120da5
lea eax, [esp + 0x4a0]
mov dword [esp + 0x178], fcn.100776d0
mov dword [esp + 0x17c], 0x100224a0
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], fcn.100776d0
mov dword [esp + 0x108], 0x100222b0
nop
push 0x104c2ef4
push 0x104dcc94
push str.__line:
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x158], esp
push str.._logic_connection.cpp
call fcn.10003680
lea esi, [esp + 0x160]
call fcn.100af830
add esp, 0x20
mov esi, eax
push 0x104c3ebc
lea ecx, [esp + 0x164]
mov byte [esp + 0x4a4], 0x16
call fcn.10003680
push esi
push eax
lea ecx, [esp + 0x120]
push ecx
mov byte [esp + 0x4ac], 0x17
call fcn.10016ef0
add esp, 0xc
push eax
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x4a8], 0x18
call fcn.10016fa0
add esp, 0xc
push eax
lea eax, [esp + 0x8c]
push eax
mov byte [esp + 0x4a4], 0x19
call fcn.10016fa0
add esp, 0xc
push eax
lea ecx, [esp + 0xa8]
push ecx
mov byte [esp + 0x4a0], 0x1a
call fcn.10016fa0
add esp, 0xc
mov ebp, eax
mov byte [esp + 0x494], 0x1b
mov edx, dword [esp + 0x4a0]
push edx
lea eax, [esp + 0xe4]
push eax
call fcn.101033a0
add esp, 8
mov esi, eax
push str.device_control:__s_code_0x_x_
lea ecx, [esp + 0x2f0]
push ecx
mov byte [esp + 0x49c], 0x1c
call fcn.100167c0
lea edx, [esp + 0x174]
mov byte [esp + 0x494], 0x1d
push edx
mov edi, eax
mov dword [esp + 0x178], esi
call fcn.1001ec90
lea ecx, [esp + 0x104]
add esp, 4
push ecx
mov edi, eax
call fcn.1001ec90
add esp, 4
lea edx, [esp + 0xc0]
mov ecx, eax
call fcn.100168d0
mov esi, eax
mov byte [esp + 0x494], 0x1e
call fcn.1005c450
mov eax, dword [eax]
lea edx, [esp + 0x2c]
push edx
push eax
lea eax, [esp + 0x188]
push eax
call fcn.10016de0
add esp, 0xc
mov byte [esp + 0x494], 0x1f
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x18]
add ecx, 4
cmp dword [esi + 0x1c], ebx
jb 0x10120962
mov esi, dword [esi + 8]
jmp 0x10120965
add esi, 8
push esi
mov ebx, eax
call fcn.10013de0
cmp dword [ebp + 0x1c], 0x10
mov ebx, dword [ebp + 0x18]
jb 0x1012097b
mov ebp, dword [ebp + 8]
jmp 0x1012097e
add ebp, 8
push ebp
mov ecx, eax
call fcn.10013de0
lea ecx, [esp + 0x180]
mov byte [esp + 0x494], 0x1e
call fcn.100132f0
mov edi, 0x10
mov byte [esp + 0x494], 0x1d
cmp dword [esp + 0xdc], edi
jb 0x101209c0
mov ecx, dword [esp + 0xc8]
push ecx
call fcn.1025a370
add esp, 4
xor ebx, ebx
mov esi, 0xf
push 3
lea ecx, [esp + 0x34]
mov dword [esp + 0xe0], esi
mov dword [esp + 0xdc], ebx
mov byte [esp + 0xcc], bl
call fcn.10239250
mov eax, dword [esp + 0xc0]
cmp eax, 0xfffffffd
je 0x10120a1e
cmp eax, ebx
je 0x10120a17
jmp 0x10120a00
mov dword [eax], ebx
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + 4]
mov dword [esp + 0xc0], eax
cmp eax, ebx
jne 0x10120a00
mov dword [esp + 0xc0], ebx
lea ecx, [esp + 0x30]
call fcn.10239290
lea eax, [esp + 0x2ec]
push eax
mov byte [esp + 0x498], 0x1c
call fcn.1000b890
mov byte [esp + 0x494], 0x1b
cmp dword [esp + 0xfc], edi
jb 0x10120a5d
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x5c]
mov dword [esp + 0x100], esi
mov dword [esp + 0xfc], ebx
mov byte [esp + 0xec], bl
call fcn.10239250
mov eax, dword [esp + 0xe0]
cmp eax, 0xfffffffd
je 0x10120aae
cmp eax, ebx
je 0x10120aa7
lea ecx, [ecx]
mov dword [eax], ebx
mov edx, dword [esp + 0xe0]
mov eax, dword [edx + 4]
mov dword [esp + 0xe0], eax
cmp eax, ebx
jne 0x10120a90
mov dword [esp + 0xe0], ebx
lea ecx, [esp + 0x58]
call fcn.10239290
mov byte [esp + 0x494], 0x1a
cmp dword [esp + 0xbc], edi
jb 0x10120ad8
mov eax, dword [esp + 0xa8]
push eax
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x60]
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], ebx
mov byte [esp + 0xac], bl
call fcn.10239250
mov eax, dword [esp + 0xa0]
cmp eax, 0xfffffffd
je 0x10120b2e
cmp eax, ebx
je 0x10120b27
jmp 0x10120b10
mov dword [eax], ebx
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + 4]
mov dword [esp + 0xa0], eax
cmp eax, ebx
jne 0x10120b10
mov dword [esp + 0xa0], ebx
lea ecx, [esp + 0x5c]
call fcn.10239290
mov byte [esp + 0x494], 0x19
cmp dword [esp + 0x9c], edi
jb 0x10120b58
mov edx, dword [esp + 0x88]
push edx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x54]
mov dword [esp + 0xa0], esi
mov dword [esp + 0x9c], ebx
mov byte [esp + 0x8c], bl
call fcn.10239250
mov eax, dword [esp + 0x80]
cmp eax, 0xfffffffd
je 0x10120bae
cmp eax, ebx
je 0x10120ba7
jmp 0x10120b90
mov dword [eax], ebx
mov eax, dword [esp + 0x80]
mov eax, dword [eax + 4]
mov dword [esp + 0x80], eax
cmp eax, ebx
jne 0x10120b90
mov dword [esp + 0x80], ebx
lea ecx, [esp + 0x50]
call fcn.10239290
mov byte [esp + 0x494], 0x18
cmp dword [esp + 0x7c], edi
jb 0x10120bd2
mov ecx, dword [esp + 0x68]
push ecx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x40]
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x6c], bl
call fcn.10239250
mov eax, dword [esp + 0x60]
cmp eax, 0xfffffffd
je 0x10120c15
cmp eax, ebx
je 0x10120c11
lea esp, [esp]
mov dword [eax], ebx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 4]
mov dword [esp + 0x60], eax
cmp eax, ebx
jne 0x10120c00
mov dword [esp + 0x60], ebx
lea ecx, [esp + 0x3c]
call fcn.10239290
mov byte [esp + 0x494], 0x17
cmp dword [esp + 0x128], edi
jb 0x10120c3f
mov eax, dword [esp + 0x114]
push eax
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x48]
mov dword [esp + 0x12c], esi
mov dword [esp + 0x128], ebx
mov byte [esp + 0x118], bl
call fcn.10239250
mov eax, dword [esp + 0x10c]
cmp eax, 0xfffffffd
je 0x10120c8e
cmp eax, ebx
je 0x10120c87
nop
mov dword [eax], ebx
mov ecx, dword [esp + 0x10c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x10c], eax
cmp eax, ebx
jne 0x10120c70
mov dword [esp + 0x10c], ebx
lea ecx, [esp + 0x44]
call fcn.10239290
mov byte [esp + 0x494], 0x16
cmp dword [esp + 0x170], edi
jb 0x10120cb8
mov edx, dword [esp + 0x15c]
push edx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x20]
mov dword [esp + 0x174], esi
mov dword [esp + 0x170], ebx
mov byte [esp + 0x160], bl
call fcn.10239250
mov eax, dword [esp + 0x154]
cmp eax, 0xfffffffd
je 0x10120d0e
cmp eax, ebx
je 0x10120d07
jmp 0x10120cf0
mov dword [eax], ebx
mov eax, dword [esp + 0x154]
mov eax, dword [eax + 4]
mov dword [esp + 0x154], eax
cmp eax, ebx
jne 0x10120cf0
mov dword [esp + 0x154], ebx
lea ecx, [esp + 0x1c]
call fcn.10239290
mov byte [esp + 0x494], 0x15
cmp dword [esp + 0x150], edi
jb 0x10120d38
mov ecx, dword [esp + 0x13c]
push ecx
call fcn.1025a370
add esp, 4
push 3
lea ecx, [esp + 0x24]
mov dword [esp + 0x154], esi
mov dword [esp + 0x150], ebx
mov byte [esp + 0x140], bl
call fcn.10239250
mov eax, dword [esp + 0x134]
cmp eax, 0xfffffffd
je 0x10120d8e
cmp eax, ebx
je 0x10120d87
jmp 0x10120d70
mov dword [eax], ebx
mov edx, dword [esp + 0x134]
mov eax, dword [edx + 4]
mov dword [esp + 0x134], eax
cmp eax, ebx
jne 0x10120d70
mov dword [esp + 0x134], ebx
lea ecx, [esp + 0x20]
call fcn.10239290
mov eax, dword [esp + 0x2c]
cmp eax, ebx
mov ebx, edi
jne 0x101207f0
xor esi, esi
mov byte [esp + 0x494], 0xc
cmp eax, esi
je 0x10120dc0
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x34]
add eax, 0x3c
push ecx
mov dword [esp + 0x38], eax
mov byte [esp + 0x3c], 0
call fcn.10128980
mov byte [esp + 0x494], 0x20
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + 0x38]
cmp eax, 1
jne 0x10120e1b
mov edx, dword [ecx + 0x28]
mov eax, dword [esp + 0x4ac]
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x4a8]
push eax
push ecx
mov ecx, dword [esp + 0x34]
call fcn.100361d0
mov edi, eax
jmp 0x101212be
cmp eax, 2
je 0x10120e2f
cmp eax, 3
je 0x10120e2f
mov edi, 0xc001000b
jmp 0x101212be
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov byte [esp + 0x494], 0x22
cmp dword [esp + 0x4a8], esi
je 0x10120eaf
mov ebp, dword [esp + 0x14]
cmp ebp, esi
je 0x10120eaf
lea edx, [esp + 0x4a8]
push edx
lea eax, [esp + 0x130]
push eax
call fcn.100f93a0
add esp, 8
lea edi, [esp + 0x3c]
mov byte [esp + 0x494], 0x23
call fcn.100be780
lea eax, [esp + 0x12c]
mov byte [esp + 0x494], 0x22
call fcn.10045e30
mov eax, dword [esp + 0x3c]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
push edx
push ebp
push ecx
call fcn.102640e0
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov eax, dword [esp + 0x4a0]
add eax, 0xffffff00
cmp eax, 5
ja case.default.0x10120ec4
jmp dword [eax*4 + 0x101217b4]
mov eax, 0x4000b
jmp 0x10120ef3
mov eax, 0x4000f
jmp 0x10120ef3
mov eax, 0x80004
jmp 0x10120ef3
mov eax, 0x20007
jmp 0x10120ef3
mov eax, 0x20009
jmp 0x10120ef3
mov eax, 0xe0003
mov dword [esp + 0x4a0], eax
mov edx, dword [ecx + 0x30]
lea ecx, [esp + 0x3c]
push ecx
push eax
lea ecx, [esp + 0x58]
call fcn.1007f7c0
mov edi, eax
cmp edi, esi
jge 0x10120f75
lea eax, [esp + 0x50]
mov byte [esp + 0x494], 0x21
call fcn.10045e30
lea eax, [esp + 0x3c]
mov byte [esp + 0x494], 0x20
call fcn.10045e30
lea eax, [esp + 0x34]
mov byte [esp + 0x494], 0xc
call fcn.10064850
lea eax, [esp + 0x48]
mov byte [esp + 0x494], 0xb
call fcn.10045e30
lea edx, [esp + 0x45c]
push edx
mov dword [esp + 0x498], 0xffffffff
call fcn.100542c0
mov eax, edi
jmp 0x1012178c
mov ebp, dword [esp + 0x50]
cmp ebp, esi
je 0x1012129c
mov eax, dword [esp + 0x4ac]
cmp eax, esi
je 0x1012129c
mov ecx, dword [esp + 0x28]
cmp ecx, esi
je 0x1012129c
cmp eax, dword [ebp]
jae 0x10121280
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 4
mov dword [esp + 0x1c], eax
call fcn.1005c450
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x48]
push edx
mov esi, eax
call fcn.10016d30
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov dword [eax], 0
lea ecx, [esp + 0x44]
mov byte [esp + 0x494], 0x2e
call fcn.1000a450
cmp dword [esp + 0x18], 0
je 0x10121209
mov bl, 0x36
jmp 0x10121000
mov edx, dword [ebp]
push 0x104c2ef4
push 0x104dccec
push str.__line:
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x158], esp
push str.._logic_connection.cpp
mov dword [esp + 0x4c], edx
call fcn.10003680
lea esi, [esp + 0x298]
call fcn.100af830
add esp, 0x20
mov esi, eax
push 0x104c3ebc
lea ecx, [esp + 0x25c]
mov byte [esp + 0x4a4], 0x2f
call fcn.10003680
push esi
push eax
lea eax, [esp + 0x2c0]
push eax
mov byte [esp + 0x4ac], 0x30
call fcn.10016ef0
add esp, 0xc
push eax
lea ecx, [esp + 0x23c]
push ecx
mov byte [esp + 0x4a8], 0x31
call fcn.10016fa0
add esp, 0xc
push eax
lea edx, [esp + 0x2d8]
push edx
mov byte [esp + 0x4a4], 0x32
call fcn.10016fa0
add esp, 0xc
push eax
lea eax, [esp + 0x294]
push eax
mov byte [esp + 0x4a0], 0x33
call fcn.10016fa0
add esp, 0xc
mov esi, eax
push str.device_control:_outbuffer_too_small__0x_x___expect_length_0x_x_
lea ecx, [esp + 0x2f0]
push ecx
mov byte [esp + 0x49c], 0x34
call fcn.100167c0
mov edi, eax
lea eax, [esp + 0x4ac]
mov byte [esp + 0x494], 0x35
call fcn.10016ce0
mov edi, eax
lea eax, [esp + 0x1c]
call fcn.10016ce0
lea edx, [esp + 0x10c]
mov ecx, eax
call fcn.100168d0
mov edi, eax
mov byte [esp + 0x494], bl
call fcn.1005c450
mov eax, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
lea eax, [esp + 0x188]
push eax
call fcn.10016de0
add esp, 0xc
mov byte [esp + 0x494], 0x37
mov ecx, dword [eax + 4]
add ecx, 4
mov eax, edi
call fcn.10017080
mov ecx, eax
mov eax, esi
call fcn.10017080
lea ecx, [esp + 0x180]
mov byte [esp + 0x494], bl
call fcn.100132f0
lea ecx, [esp + 0x10c]
mov byte [esp + 0x494], 0x35
call fcn.10003790
lea ecx, [esp + 0x2ec]
push ecx
mov byte [esp + 0x498], 0x34
call fcn.1000b890
lea ecx, [esp + 0x28c]
mov byte [esp + 0x494], 0x33
call fcn.10003790
lea ecx, [esp + 0x2cc]
mov byte [esp + 0x494], 0x32
call fcn.10003790
lea ecx, [esp + 0x22c]
mov byte [esp + 0x494], 0x31
call fcn.10003790
lea ecx, [esp + 0x2ac]
mov byte [esp + 0x494], 0x30
call fcn.10003790
lea ecx, [esp + 0x24c]
mov byte [esp + 0x494], 0x2f
call fcn.10003790
lea ecx, [esp + 0x26c]
mov byte [esp + 0x494], 0x2e
call fcn.10003790
cmp dword [esp + 0x18], 0
jne 0x10121000
lea ecx, [esp + 0x18]
mov byte [esp + 0x494], 0x22
call fcn.1000a450
lea eax, [esp + 0x50]
mov byte [esp + 0x494], 0x21
call fcn.10045e30
lea eax, [esp + 0x3c]
mov byte [esp + 0x494], 0x20
call fcn.10045e30
lea eax, [esp + 0x34]
mov byte [esp + 0x494], 0xc
call fcn.10064850
lea eax, [esp + 0x48]
mov byte [esp + 0x494], 0xb
call fcn.10045e30
lea edx, [esp + 0x45c]
push edx
mov dword [esp + 0x498], 0xffffffff
call fcn.100542c0
mov eax, 0xc0010007
jmp 0x1012178c
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
mov eax, dword [eax]
push edx
push eax
push ecx
call fcn.102640e0
mov eax, dword [ebp]
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov dword [ecx], eax
lea eax, [esp + 0x50]
mov byte [esp + 0x494], 0x21
call fcn.10045e30
lea eax, [esp + 0x3c]
mov byte [esp + 0x494], 0x20
call fcn.10045e30
lea eax, [esp + 0x34]
mov byte [esp + 0x494], 0xc
call fcn.10064850
mov byte [esp + 0x494], 0xb
mov eax, dword [esp + 0x4c]
cmp eax, esi
je 0x1012130b
mov esi, eax
add eax, 4
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x1012130b
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1012130b
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
lea ecx, [esp + 0x45c]
push ecx
mov dword [esp + 0x498], 0xffffffff
call fcn.100542c0
mov eax, edi
jmp 0x1012178c
lea edx, [esp + 0x20]
mov dword [esp + 0x20], 4
mov dword [esp + 0x1c], edx
call fcn.1005c450
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
mov esi, eax
call fcn.10016d30
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [eax], 0
mov byte [esp + 0x494], 0x24
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1012137f
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1012170e
lea edx, [esp + 0x4a0]
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], fcn.100776d0
mov dword [esp + 0x108], 0x100222b0
jmp 0x101213b3
mov ebx, esi
push 0x104c2ef4
push 0x104dccb8
push str.__line:
sub esp, 0x20
mov ecx, esp
mov dword [esp + 0x158], esp
push str.._logic_connection.cpp
call fcn.10003680
lea esi, [esp + 0x8c]
call fcn.100af830
add esp, 0x20
mov esi, eax
push 0x104c3ebc
lea ecx, [esp + 0x90]
mov byte [esp + 0x4a4], 0x25
call fcn.10003680
push esi
push eax
lea eax, [esp + 0xb4]
push eax
mov byte [esp + 0x4ac], 0x26
call fcn.10016ef0
add esp, 0xc
push eax
lea ecx, [esp + 0xf0]
push ecx
mov byte [esp + 0x4a8], 0x27
call fcn.10016fa0
add esp, 0xc
push eax
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x4a4], 0x28
call fcn.10016fa0
add esp, 0xc
push eax
lea eax, [esp + 0x15c]
push eax
mov byte [esp + 0x4a0], 0x29
call fcn.10016fa0
add esp, 0xc
mov ebp, eax
push str.unsupported_USER_device_control_code:__0x_x_
lea ecx, [esp + 0x3a8]
push ecx
mov byte [esp + 0x49c], 0x2a
call fcn.100167c0
lea edx, [esp + 0x100]
push edx
mov edi, eax
mov byte [esp + 0x498], 0x2b
call fcn.1001ec90
add esp, 4
lea edx, [esp + 0x134]
mov ecx, eax
call fcn.100168d0
mov esi, eax
mov byte [esp + 0x494], 0x2c
call fcn.1005c450
mov eax, dword [eax]
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x17c]
push edx
call fcn.10016de0
add esp, 0xc
mov byte [esp + 0x494], 0x2d
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x18]
add ecx, 4
cmp dword [esi + 0x1c], ebx
jb 0x101214ed
mov esi, dword [esi + 8]
jmp 0x101214f0
add esi, 8
push esi
mov ebx, eax
call fcn.10013de0
cmp dword [ebp + 0x1c], 0x10
mov ebx, dword [ebp + 0x18]
jb 0x10121506
mov ebp, dword [ebp + 8]
jmp 0x10121509
add ebp, 8
push ebp
mov ecx, eax
call fcn.10013de0
lea ecx, [esp + 0x174]
mov byte [esp + 0x494], 0x2c
call fcn.100132f0
mov esi, 0x10
mov byte [esp + 0x494], 0x2b
cmp dword [esp + 0x150], esi
jb 0x1012154b
mov eax, dword [esp + 0x13c]
push eax
call fcn.1025a370
add esp, 4
xor ebx, ebx
mov edi, 0xf
lea ecx, [esp + 0x134]
mov dword [esp + 0x150], edi
mov dword [esp + 0x14c], ebx
mov byte [esp + 0x13c], bl
call fcn.10001370
lea ecx, [esp + 0x3a4]
push ecx
mov byte [esp + 0x498], 0x2a
call fcn.1000b890
mov byte [esp + 0x494], 0x29
cmp dword [esp + 0x170], esi
jb 0x101215a9
mov edx, dword [esp + 0x15c]
push edx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x154]
mov dword [esp + 0x170], edi
mov dword [esp + 0x16c], ebx
mov byte [esp + 0x15c], bl
call fcn.10001370
mov byte [esp + 0x494], 0x28
cmp dword [esp + 0xdc], esi
jb 0x101215eb
mov eax, dword [esp + 0xc8]
push eax
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0xc0]
mov dword [esp + 0xdc], edi
mov dword [esp + 0xd8], ebx
mov byte [esp + 0xc8], bl
call fcn.10001370
mov byte [esp + 0x494], 0x27
cmp dword [esp + 0xfc], esi
jb 0x1012162d
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0xe0]
mov dword [esp + 0xfc], edi
mov dword [esp + 0xf8], ebx
mov byte [esp + 0xe8], bl
call fcn.10001370
mov byte [esp + 0x494], 0x26
cmp dword [esp + 0xbc], esi
jb 0x1012166f
mov edx, dword [esp + 0xa8]
push edx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0xbc], edi
mov dword [esp + 0xb8], ebx
mov byte [esp + 0xa8], bl
call fcn.10001370
mov byte [esp + 0x494], 0x25
cmp dword [esp + 0x9c], esi
jb 0x101216b1
mov eax, dword [esp + 0x88]
push eax
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x80]
mov dword [esp + 0x9c], edi
mov dword [esp + 0x98], ebx
mov byte [esp + 0x88], bl
call fcn.10001370
mov byte [esp + 0x494], 0x24
cmp dword [esp + 0x7c], esi
jb 0x101216ed
mov ecx, dword [esp + 0x68]
push ecx
call fcn.1025a370
add esp, 4
lea ecx, [esp + 0x60]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], ebx
mov byte [esp + 0x68], bl
call fcn.10001370
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x101213b1
mov byte [esp + 0x494], 0x22
test eax, eax
je 0x1012172b
push eax
call fcn.1029f770
add esp, 4
mov dword [esp + 0x14], 0
lea eax, [esp + 0x50]
mov byte [esp + 0x494], 0x21
call fcn.10045e30
lea eax, [esp + 0x3c]
mov byte [esp + 0x494], 0x20
call fcn.10045e30
lea eax, [esp + 0x34]
mov byte [esp + 0x494], 0xc
call fcn.10064850
lea eax, [esp + 0x48]
mov byte [esp + 0x494], 0xb
call fcn.10045e30
lea edx, [esp + 0x45c]
push edx
mov dword [esp + 0x498], 0xffffffff
call fcn.100542c0
mov eax, 0xc0010004
mov ecx, dword [esp + 0x48c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x470]
xor ecx, esp
call fcn.102595a0
add esp, 0x484
ret