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

Disassembly:
sub esp, 0x180
mov eax, dword [0x10143964]
xor eax, esp
mov dword [esp + 0x17c], eax
cmp byte [esp + 0x1ac], 0x40
mov eax, dword [esp + 0x198]
mov edx, dword [esp + 0x18c]
mov ecx, dword [esp + 0x190]
push ebx
mov ebx, dword [esp + 0x18c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1a0]
push ebp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1a8]
push esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1b0]
push edi
mov edi, dword [esp + 0x194]
mov dword [esp + 0x1c], eax
mov eax, dword [edx]
mov dword [esp + 0x64], edi
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x2c], 0
jne 0x100d4906
lea edx, [esp + 0x78]
push edx
push 0x14
push ecx
push eax
call fcn.100a7c60
mov esi, eax
mov dword [esp + 0x44], 0x14
add esp, 0x10
mov al, byte [esi + 1]
push dword [esi + 4]
mov byte [esp + 0x17], al
call dword [sym.imp.WS2_32.dll_ntohl]
mov ebp, eax
movzx eax, word [esi + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
push dword [esi + 0xc]
movzx eax, ax
mov dword [esp + 0x2c], eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x13]
mov dword [esp + 0x50], edx
test al, 2
je 0x100d48ed
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], 0
jmp 0x100d4968
push edx
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], 0xffffffff
jmp 0x100d4964
lea edx, [esp + 0x68]
push edx
push 0x10
push ecx
push eax
call fcn.100a7c60
mov edi, eax
mov dword [esp + 0x44], 0x10
add esp, 0x10
mov al, byte [edi + 1]
push dword [edi + 4]
mov byte [esp + 0x17], al
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
mov ebp, eax
movzx eax, word [edi + 8]
push eax
call esi
movzx eax, ax
mov dword [esp + 0x28], eax
movzx eax, word [edi + 0xa]
push eax
call esi
movzx esi, ax
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x50], eax
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x1a4]
cmp ecx, dword [esp + 0x34]
jne 0x100d49aa
push ebp
call fcn.100a6340
push 0
mov ecx, eax
mov eax, dword [edi + 4]
push 0
push ecx
push edi
mov dword [eax + 0x2c4], 0x30000010
push dword [edi + 4]
call fcn.100a4f10
mov eax, dword [esp + 0x38]
add esp, 0x18
mov dword [eax], 1
jmp 0x100d5a4a
test al, 8
je 0x100d49b5
mov byte [ebx + 0x472], 1
movzx eax, al
mov dword [esp + 0x4c], eax
shr eax, 2
not eax
and eax, 1
test dword [0x1014ba78], 0x100
mov dword [esp + 0x38], eax
je 0x100d49eb
push 0x77
push dword [ebx + 0x2d8]
push dword [ebx + 0x2d0]
push ebp
call fcn.1004d380
add esp, 0x10
test edi, edi
je 0x100d5a4a
mov ecx, dword [ebx + 0x2d0]
cmp ecx, ebp
jae 0x100d4a0e
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
ja 0x100d5a1d
cmp ecx, ebp
jbe 0x100d4a1f
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
jb 0x100d5a1d
cmp ecx, ebp
je 0x100d5a1d
mov ecx, ebp
sub ecx, dword [ebx + 0x2d4]
mov dword [esp + 0x54], ecx
cmp ecx, 0x1000
jae 0x100d5a4a
movzx eax, word [ebx + 0x460]
shl eax, 3
cmp ecx, eax
jb 0x100d4a5f
push ecx
push ebx
call fcn.100a5eb0
add esp, 8
test eax, eax
jne 0x100d5a4a
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx]
cmp ebp, ecx
jae 0x100d4a76
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d4a83
cmp ebp, ecx
jbe 0x100d4a85
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d4a85
mov dword [edx], ebp
mov eax, dword [esp + 0x54]
mov edx, eax
mov cl, al
shr edx, 3
mov eax, dword [ebx + 0x1f0]
and cl, 7
mov dword [esp + 0x34], edx
mov al, byte [edx + eax]
shr al, cl
test al, 1
jne 0x100d5a1d
mov eax, dword [ebx + 0x2dc]
mov al, byte [edx + eax]
shr al, cl
test al, 1
jne 0x100d5a1d
mov eax, dword [edi + 4]
test dword [eax + 0xd0], 0x30000000
jne 0x100d5a07
test dword [edi + 0x30], 0x100
jne 0x100d5a07
mov eax, dword [esp + 0x28]
cmp ax, word [ebx + 0x450]
jb 0x100d4bb9
push 1
push 1
push 1
push 0
push 8
call fcn.100aec90
add esp, 0x14
mov dword [esp + 0x2c], eax
test eax, eax
je 0x100d4b4e
add dword [eax + 8], 4
mov edi, dword [eax + 8]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 1
mov dword [eax + 0xc], 8
call esi
push 8
mov word [edi], ax
call esi
mov edx, dword [esp + 0x28]
push edx
mov word [edi + 2], ax
call esi
push 0
mov word [edi + 4], ax
call esi
push dword [esp + 0x2c]
mov word [edi + 6], ax
push dword [esp + 0x68]
call fcn.1009e170
add esp, 8
mov eax, 1
mov ecx, 0x1014b8a8
lock xadd dword [ecx], eax
mov ecx, dword [esp + 0x34]
add ecx, dword [ebx + 0x2dc]
mov edx, dword [esp + 0x54]
and edx, 7
movzx eax, byte [ecx]
bts eax, edx
mov byte [ecx], al
mov ecx, dword [ebx + 0x2e0]
cmp ebp, ecx
jae 0x100d4b8c
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d4b99
cmp ebp, ecx
jbe 0x100d4b9f
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d4b9f
mov dword [ebx + 0x2e0], ebp
mov eax, dword [ebx + 0x2d0]
inc eax
cmp ebp, eax
jne 0x100d5a4a
mov dword [ebx + 0x2d0], ebp
jmp 0x100d5a4a
cmp byte [esp + 0x1bc], 0x40
jne 0x100d4bf5
test byte [esp + 0x13], 2
jne 0x100d4bf5
cmp dword [esp + 0x30], 0
jne 0x100d4bf5
push dword [esp + 0x4c]
lea eax, [esp + 0x90]
push esi
push str.FSN_zero_for_MID_8.8x__but_flags_2.2x
push 0x100
push eax
call fcn.1004b510
add esp, 0x14
jmp 0x100d4dcd
mov cl, byte [ebx + 0x492]
mov esi, dword [ebx + 0x1e8]
movzx eax, ax
lea eax, [eax + eax*2]
shl eax, 3
cmp dword [esp + 0x38], 0
mov dword [esp + 0x44], eax
je 0x100d4c44
mov esi, dword [esi + eax]
test esi, esi
je 0x100d4c72
nop dword [eax]
mov edx, dword [esp + 0x14]
xor eax, eax
cmp cl, 1
jne 0x100d4c30
cmp dword [esi + 0x1c], edx
jmp 0x100d4c34
cmp word [esi + 0x1c], dx
sete al
test eax, eax
jne 0x100d4c72
mov esi, dword [esi + 0x4c]
test esi, esi
jne 0x100d4c20
jmp 0x100d4c72
mov esi, dword [esi + eax + 8]
test cl, cl
je 0x100d4c72
test esi, esi
je 0x100d4c72
mov edx, dword [esp + 0x14]
xor eax, eax
cmp cl, 1
jne 0x100d4c60
cmp dword [esi + 0x1c], edx
jmp 0x100d4c64
cmp word [esi + 0x1c], dx
sete al
test eax, eax
jne 0x100d4c72
mov esi, dword [esi + 0x4c]
test esi, esi
jne 0x100d4c50
mov ecx, dword [0x1014bac8]
mov eax, dword [0x1014bb1c]
mov dword [esp + 0x48], eax
test ecx, 0x80000
je 0x100d4cab
test eax, eax
je 0x100d4cab
push esi
push dword [esp + 0x50]
push str.chunk_flags:0x_x_look_for_control_on_queues__p_n
call eax
mov eax, dword [0x1014bb1c]
add esp, 0xc
mov ecx, dword [0x1014bac8]
mov dword [esp + 0x48], eax
mov dl, byte [esp + 0x13]
and dl, 3
mov byte [esp + 0x1b], dl
test esi, esi
je 0x100d4d37
cmp dl, 3
je 0x100d4d06
cmp dword [esp + 0x38], 0
je 0x100d4cf0
mov eax, dword [esp + 0x14]
cmp eax, dword [esi + 0x1c]
je 0x100d4cda
push eax
push str.Reassembly_problem__MID_8.8x_
jmp 0x100d4db8
mov eax, 0x400
test word [esi + 2], ax
je 0x100d4d37
push ebp
push str.All_fragments_of_a_user_message_must_be_ordered_or_unordered__TSN_8.8x_
jmp 0x100d4db8
mov eax, 0x400
test word [esi + 2], ax
jne 0x100d4d37
push ebp
push str.All_fragments_of_a_user_message_must_be_ordered_or_unordered__TSN_8.8x_
jmp 0x100d4db8
cmp dword [esp + 0x38], 0
jne 0x100d4d91
cmp byte [ebx + 0x492], 0
jne 0x100d4d91
mov ecx, dword [esi + 0x2c]
lea eax, [ecx + 1]
cmp ebp, eax
jne 0x100d4d35
cmp byte [esi + 0x61], 0
jne 0x100d4d35
push ecx
push str.Illegal_message_sequence__missing_end_for_MID:__8.8x
jmp 0x100d4db8
xor esi, esi
mov eax, dword [ebx + 0x37c]
add eax, dword [ebx + 0x35c]
add eax, dword [ebx + 0x374]
cmp eax, dword [0x1014b9e8]
jae 0x100d4d5e
cmp dword [ebx + 0x31c], 0
jg 0x100d4ed7
mov edx, dword [edi]
cmp dword [edx + 0x88], 0
je 0x100d4e53
mov ecx, dword [edi + 4]
mov eax, dword [ecx + 0xd0]
test eax, 0x800000
je 0x100d4e17
or eax, 0x2000000
mov dword [ecx + 0xd0], eax
jmp 0x100d4e4a
test ecx, 0x80000
je 0x100d4daf
test eax, eax
je 0x100d4daf
push dword [esp + 0x14]
push dword [esp + 0x50]
push str.chunk_flags:_0x_x_dup_detected_on_MID:__u_n
call eax
add esp, 0xc
push dword [esp + 0x14]
push str.Duplicate_MID_8.8x_detected.
lea eax, [esp + 0x94]
push 0x100
push eax
call fcn.1004b510
add esp, 0x10
test eax, eax
jns 0x100d4dd9
mov byte [esp + 0x8c], 0
lea eax, [esp + 0x8c]
push eax
push 0xd
call fcn.100a62b0
mov ecx, eax
mov eax, dword [edi + 4]
push 0
push 0
push ecx
mov dword [eax + 0x2c4], 0x30000011
push edi
push dword [edi + 4]
call fcn.100a4f10
mov eax, dword [esp + 0x3c]
add esp, 0x1c
mov dword [eax], 1
jmp 0x100d5a4a
lea eax, [edx + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi]
mov eax, 0x1bc
test word [ecx + 0xa4], ax
je 0x100d4e40
lea eax, [ecx + 0x54]
push eax
push ecx
call fcn.100854c0
add esp, 8
jmp 0x100d4e4a
lea eax, [ecx + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x1014bb1c]
mov dword [esp + 0x48], eax
cmp byte [esp + 0x1bc], 0
jne 0x100d4ea2
mov ecx, dword [ebx + 0x2d8]
cmp ebp, ecx
jae 0x100d4e74
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d4e81
cmp ebp, ecx
jbe 0x100d4ed7
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d4ed7
mov ecx, dword [ebx + 0x2e0]
cmp ebp, ecx
jae 0x100d4e9c
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d59c3
cmp ebp, ecx
jbe 0x100d4ed7
mov eax, ebp
jmp 0x100d4eca
test esi, esi
je 0x100d59c3
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x30]
cmp edx, ecx
jae 0x100d4ec6
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
ja 0x100d59c3
cmp edx, ecx
jbe 0x100d4ed7
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
jb 0x100d59c3
mov al, byte [esp + 0x13]
test al, 2
je 0x100d4f25
cmp dword [ebx + 0x208], 0
jne 0x100d4f25
test al, 4
jne 0x100d4f25
mov ecx, dword [esp + 0x44]
mov eax, dword [ebx + 0x1e8]
add ecx, 0x10
add eax, ecx
cmp byte [ebx + 0x492], 1
mov dword [esp + 0x1c], eax
jne 0x100d4f9d
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
cmp ecx, edx
jae 0x100d4f8b
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x100d4fdc
mov dl, byte [esp + 0x1bc]
xor eax, eax
mov ecx, dword [esp + 0x5c]
cmp dl, 0x40
sete al
mov ecx, dword [ecx]
mov dword [esp + 0x1c], ecx
lea eax, [eax*4 + 0x10]
sub dword [esp + 0x1a4], eax
cmp dword [esp + 0x1b8], 0
jne 0x100d50cc
xor eax, eax
cmp dl, 0x40
push 1
push dword [esp + 0x1a8]
sete al
lea eax, [eax*4 + 0x10]
add eax, dword [esp + 0x68]
push eax
push ecx
call fcn.10092b00
mov edx, eax
add esp, 0x10
mov dword [esp + 0x1c], edx
jmp 0x100d5124
jbe 0x100d4f99
sub ecx, edx
cmp ecx, 0x80000000
jb 0x100d4fe0
jmp 0x100d4f25
je 0x100d4fe0
jmp 0x100d4f25
movzx ecx, word [eax]
mov eax, dword [esp + 0x14]
movzx edx, ax
mov dword [esp + 0x3c], 0x8000
cmp cx, dx
jae 0x100d4fc2
mov eax, edx
sub eax, ecx
cmp ax, word [esp + 0x3c]
ja 0x100d4fd8
cmp cx, dx
jbe 0x100d4fcf
mov eax, ecx
sub eax, edx
cmp ax, word [esp + 0x3c]
jb 0x100d4fd8
cmp cx, dx
jne 0x100d4f25
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test dword [0x1014bac8], 0x1000000
je 0x100d5001
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x100d5001
push dword [eax]
push edx
push str.EVIL_Broken_Dup_S_SEQ:__u_delivered:__u_from_peer__Abort__n
call ecx
add esp, 0xc
mov ecx, dword [esp + 0x44]
add ecx, dword [ebx + 0x1e8]
cmp byte [ebx + 0x492], 0
mov edx, dword [esp + 0x28]
je 0x100d504c
push dword [esp + 0x14]
movzx eax, dx
push eax
push ebp
push dword [ecx + 0x10]
lea eax, [esp + 0x9c]
push str.Delivered_MID_8.8x__got_TSN_8.8x__SID_4.4x__MID_8.8x
push 0x100
push eax
call fcn.1004b510
add esp, 0x1c
test eax, eax
jns 0x100d508e
mov byte [esp + 0x8c], 0
jmp 0x100d508e
mov eax, dword [esp + 0x14]
movzx eax, ax
push eax
movzx eax, dx
push eax
movzx eax, word [ecx + 0x10]
push ebp
push eax
push str.Delivered_SSN_4.4x__got_TSN_8.8x__SID_4.4x__SSN_4.4x
lea eax, [esp + 0xa0]
push 0x100
push eax
call fcn.1004b510
movzx ecx, byte [esp + 0xa8]
xor edx, edx
add esp, 0x1c
test eax, eax
cmovs ecx, edx
mov byte [esp + 0x8c], cl
lea eax, [esp + 0x8c]
push eax
push 0xd
call fcn.100a62b0
push 0
mov ecx, eax
mov eax, dword [edi + 4]
push 0
push ecx
push edi
mov dword [eax + 0x2c4], 0x30000012
push dword [edi + 4]
call fcn.100a4f10
mov eax, dword [esp + 0x3c]
add esp, 0x1c
mov dword [eax], 1
jmp 0x100d5a4a
mov eax, dword [esp + 0x60]
cmp dl, 0x40
jne 0x100d50da
add eax, 0x14
jmp 0x100d50dd
add eax, 0x10
push eax
push ecx
call fcn.100927a0
mov edx, dword [esp + 0x24]
add esp, 8
cmp dword [edx], 0
jne 0x100d50f5
mov ecx, dword [edx + 0xc]
jmp 0x100d5109
xor ecx, ecx
mov eax, edx
nop dword [eax]
add ecx, dword [eax + 0xc]
mov eax, dword [eax]
test eax, eax
jne 0x100d5100
mov eax, dword [esp + 0x1a4]
cmp ecx, eax
jle 0x100d5124
sub eax, ecx
push eax
push edx
call fcn.100927a0
mov edx, dword [esp + 0x24]
add esp, 8
test edx, edx
je 0x100d59b0
test esi, esi
jne 0x100d5236
push dword [0x1014b5c8]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x100d59b0
mov ecx, 1
mov edx, 0x1014b63c
mov eax, ecx
lock xadd dword [edx], eax
mov eax, dword [esp + 0x40]
add eax, 0x150
lock xadd dword [eax], ecx
push 0x6c
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x34]
lea eax, [esi + 0x54]
mov dword [esi + 0x58], eax
add esp, 0xc
mov eax, dword [esp + 0x30]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x1c], eax
movzx eax, byte [esp + 0x13]
shl ax, 8
mov word [esi + 2], ax
mov eax, dword [esp + 0x50]
mov dword [esi + 4], eax
mov word [esi], dx
mov eax, dword [ebx + 0x2fc]
mov dword [esi + 8], eax
mov dword [esi + 0x2c], 0xffffffff
mov dword [esi + 0x10], ebp
mov dword [esi + 0x14], ebp
mov eax, dword [edi + 0x2e4]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], 0
mov dword [esi + 0x40], edi
mov ax, word [edi + 0x580]
mov word [esi + 0x5c], ax
test dword [edi + 0x30], 0x200
je 0x100d51ee
mov byte [esi + 0x60], 1
cmp byte [esp + 0x1b], 3
jne 0x100d522e
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], 0
add edx, dword [eax + 0xc]
mov dword [esi + 0x20], edx
mov ecx, dword [eax]
test ecx, ecx
jne 0x100d5217
mov dword [esi + 0x38], eax
mov ecx, dword [eax]
mov eax, ecx
test ecx, ecx
jne 0x100d5206
mov eax, dword [esp + 0x30]
mov byte [esi + 0x61], 1
mov word [esi + 0x65], 0x101
mov dword [esi + 0x2c], eax
mov dword [esp + 0x2c], 1
test dword [0x1014bac8], 0x80000
je 0x100d5262
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d5262
push esi
push dword [esp + 0x18]
push dword [esp + 0x40]
push dword [esp + 0x58]
push str.chunk_flags:_0x_x_ordered:__d_MID:__u_control:__p_n
call eax
add esp, 0x14
cmp byte [esp + 0x1b], 3
jne 0x100d5397
cmp dword [ebx + 0x208], 0
jne 0x100d54d9
cmp dword [esp + 0x38], 0
je 0x100d52ca
mov ecx, dword [esp + 0x44]
xor edx, edx
add ecx, dword [ebx + 0x1e8]
cmp byte [ebx + 0x492], 1
mov dword [esp + 0x3c], ecx
jne 0x100d52a4
mov eax, dword [ecx + 0x10]
inc eax
cmp eax, dword [esp + 0x14]
jmp 0x100d52b6
movzx ecx, word [ecx + 0x10]
mov eax, dword [esp + 0x14]
inc ecx
movzx eax, ax
cmp ecx, eax
mov ecx, dword [esp + 0x3c]
sete dl
test edx, edx
je 0x100d54d9
cmp dword [ecx], 0
jne 0x100d54d9
mov ecx, dword [esp + 0x34]
add ecx, dword [ebx + 0x2dc]
mov edx, dword [esp + 0x54]
and edx, 7
movzx eax, byte [ecx]
bts eax, edx
mov byte [ecx], al
mov ecx, dword [ebx + 0x2e0]
cmp ebp, ecx
jae 0x100d52fa
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d5307
cmp ebp, ecx
jbe 0x100d530d
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d530d
mov dword [ebx + 0x2e0], ebp
test dword [0x1014bac8], 0x80000
je 0x100d5331
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d5331
push dword [esp + 0x14]
push esi
push str.Injecting_control:__p_to_be_read__MID:__u__n
call eax
add esp, 0xc
mov eax, dword [edi]
push 0
push 0
push 1
add eax, 0x54
push eax
push esi
push edi
push dword [edi + 4]
call fcn.100a52b0
add esp, 0x1c
test byte [esp + 0x13], 4
jne 0x100d535f
mov eax, dword [ebx + 0x1e8]
mov ecx, dword [esp + 0x44]
inc dword [ecx + eax + 0x10]
mov eax, 1
mov ecx, 0x1014b7a0
lock xadd dword [ecx], eax
test dword [0x1014ba78], 0x20000
mov esi, dword [esp + 0x14]
je 0x100d55d3
push 0x10
push dword [esp + 0x2c]
push esi
push ebp
push edi
call fcn.1004d380
add esp, 0x14
jmp 0x100d55d3
mov edx, dword [edi + 0x1cc]
mov dword [esp + 0x58], edx
test edx, edx
jne 0x100d5407
push dword [0x1014b5c4]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edx, eax
mov dword [esp + 0x5c], eax
add esp, 4
test edx, edx
je 0x100d53d9
mov ecx, 1
mov eax, 0x1014b638
lock xadd dword [eax], ecx
mov dword [edx + 0x44], 0
mov byte [edx + 0x60], 0
jmp 0x100d544e
mov ecx, 0x1014b8ac
mov eax, 1
lock xadd dword [ecx], eax
cmp dword [esp + 0x1b8], 0
jne 0x100d5a4a
mov eax, dword [esp + 0x1c]
push eax
call fcn.10092e80
add esp, 4
jmp 0x100d5a4a
mov ecx, dword [edx + 0x48]
mov eax, dword [edx + 0x4c]
test ecx, ecx
je 0x100d5416
mov dword [ecx + 0x4c], eax
jmp 0x100d541c
mov dword [edi + 0x1d0], eax
mov ecx, dword [edx + 0x4c]
mov eax, dword [edx + 0x48]
mov dword [ecx], eax
or eax, 0xffffffff
mov ecx, 0x1014b650
lock xadd dword [ecx], eax
mov byte [edx + 0x60], 0
mov eax, 1
mov ecx, 0x1014b914
lock xadd dword [ecx], eax
mov eax, 0xffff
add word [edi + 0x49e], ax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x24], eax
mov eax, dword [esp + 0x28]
mov word [edx + 8], ax
mov eax, dword [esp + 0x50]
mov dword [edx + 0xc], eax
mov dword [edx], ebp
mov byte [edx + 0x64], 0
mov dword [edx + 4], ecx
mov eax, dword [edi + 0x32c]
mov dword [edx + 0x10], eax
mov al, byte [esp + 0x13]
mov byte [edx + 0x29], al
mov eax, dword [esp + 0x1a4]
mov word [edx + 0x58], ax
mov eax, dword [esp + 0x40]
mov byte [edx + 0x28], 0
mov dword [edx + 0x30], ebx
mov dword [edx + 0x44], eax
test dword [0x1014bac8], 0x80000
je 0x100d54c4
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d54c0
push ecx
push esi
push edx
push str.Building_ck:__p_for_control:__p_to_be_read__MID:__u__n
call eax
mov edx, dword [esp + 0x68]
add esp, 0x10
mov eax, dword [esp + 0x40]
mov ecx, 1
add eax, 0x150
lock xadd dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov dword [edx + 0x3c], eax
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
and edx, 7
cmp dword [0x1014ba64], 0
jne 0x100d5527
add ecx, dword [ebx + 0x2dc]
movzx eax, byte [ecx]
bts eax, edx
mov byte [ecx], al
mov ecx, dword [ebx + 0x2e0]
cmp ebp, ecx
jae 0x100d5512
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d551f
cmp ebp, ecx
jbe 0x100d555f
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d555f
mov dword [ebx + 0x2e0], ebp
jmp 0x100d555f
add ecx, dword [ebx + 0x1f0]
movzx eax, byte [ecx]
bts eax, edx
mov byte [ecx], al
mov ecx, dword [ebx + 0x2d8]
cmp ebp, ecx
jae 0x100d554c
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d5559
cmp ebp, ecx
jbe 0x100d555f
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d555f
mov dword [ebx + 0x2d8], ebp
cmp byte [esp + 0x1b], 3
jne 0x100d57d2
mov ecx, dword [ebx + 0x208]
test ecx, ecx
je 0x100d5745
mov ecx, dword [ecx + 0xc]
cmp ebp, ecx
jae 0x100d558c
mov eax, ecx
sub eax, ebp
cmp eax, 0x80000000
ja 0x100d55a1
cmp ebp, ecx
jbe 0x100d5745
mov eax, ebp
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d5745
mov edx, dword [ebx + 0x210]
test edx, edx
jne 0x100d56ee
lea ecx, [esi + 0x44]
mov dword [ecx], 0
mov eax, dword [ebx + 0x214]
mov dword [esi + 0x48], eax
mov eax, dword [ebx + 0x214]
mov dword [eax], esi
mov dword [ebx + 0x214], ecx
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 0x2d0]
inc eax
cmp ebp, eax
jne 0x100d55e4
mov dword [ebx + 0x2d0], ebp
cmp dword [esp + 0x1b8], 0
je 0x100d55f8
mov eax, dword [esp + 0x5c]
mov dword [eax], 0
cmp dword [esp + 0x38], 0
mov eax, 0x1014b754
mov edx, 0x1014b750
mov ecx, 1
cmovne eax, edx
lock xadd dword [eax], ecx
mov eax, 1
mov ecx, 0x1014b778
lock xadd dword [ecx], eax
mov eax, dword [0x1014ba78]
test eax, 0x20000
je 0x100d5643
push 0xf
push dword [esp + 0x2c]
push esi
push ebp
push edi
call fcn.1004d380
mov eax, dword [0x1014ba78]
add esp, 0x14
test eax, 0x100
je 0x100d5666
push 0x15
push dword [ebx + 0x2d8]
push dword [ebx + 0x2d0]
push dword [ebx + 0x2d4]
call fcn.1004d380
add esp, 0x10
cmp dword [esp + 0x24], 0
je 0x100d568c
mov eax, dword [ebx + 0x1e8]
add eax, dword [esp + 0x44]
push 0
push eax
push ebx
push edi
call fcn.100cfd30
add esp, 0x10
mov dword [esp + 0x24], 0
mov esi, dword [ebx + 0x208]
test esi, esi
je 0x100d59a6
mov ecx, dword [ebx + 0x2d0]
mov edx, dword [esi + 0xc]
cmp ecx, edx
jae 0x100d56b4
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x100d56c9
cmp ecx, edx
jbe 0x100d56c1
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
jb 0x100d56c9
cmp ecx, edx
jne 0x100d59a6
lea eax, [esi + 0x14]
push eax
push dword [esi + 0x10]
push edi
call fcn.100c0790
mov ecx, dword [esi]
add esp, 0xc
mov eax, dword [esi + 4]
test ecx, ecx
je 0x100d5840
mov dword [ecx + 4], eax
jmp 0x100d5846
mov eax, dword [esi + 0x10]
mov ecx, dword [edx + 0x44]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edx + 0x10]
cmp eax, ecx
jae 0x100d5710
mov eax, ecx
sub eax, dword [esi + 0x10]
cmp eax, 0x80000000
ja 0x100d571b
mov eax, dword [esi + 0x10]
cmp eax, ecx
jbe 0x100d572d
sub eax, ecx
cmp eax, 0x80000000
jae 0x100d572d
mov eax, dword [esp + 0x2c]
mov edx, eax
test eax, eax
mov eax, dword [esi + 0x10]
jne 0x100d56f1
jmp 0x100d55af
mov eax, dword [edx + 0x48]
lea ecx, [esi + 0x44]
mov dword [esi + 0x48], eax
mov dword [ecx], edx
mov eax, dword [edx + 0x48]
mov dword [eax], esi
mov dword [edx + 0x48], ecx
jmp 0x100d55cf
test byte [esp + 0x13], 4
je 0x100d5797
test dword [0x1014bac8], 0x80000
je 0x100d5770
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d5770
push dword [esp + 0x14]
push esi
push str.Unordered_data_to_be_read_control:__p_MID:__u_n
call eax
add esp, 0xc
push dword [esi + 0x10]
push ebx
call fcn.100d44d0
mov eax, dword [edi]
push 0
push 0
push 1
add eax, 0x54
push eax
push esi
push edi
push dword [edi + 4]
call fcn.100a52b0
add esp, 0x24
jmp 0x100d55cf
test dword [0x1014bac8], 0x80000
je 0x100d57bb
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d57bb
push dword [esp + 0x14]
push esi
push str.Queue_control:__p_for_reordering_MID:__u_n
call eax
add esp, 0xc
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x24]
push eax
push esi
push ebx
push edi
call fcn.100d6d10
add esp, 0x14
jmp 0x100d5816
test dword [0x1014bac8], 0x80000
mov dword [esp + 0x24], 1
je 0x100d57fe
mov eax, dword [0x1014bb1c]
test eax, eax
je 0x100d57fe
push dword [esp + 0x14]
push esi
push str.Queue_data_to_stream_for_reasm_control:__p_MID:__u_n
call eax
add esp, 0xc
push ebp
push dword [esp + 0x24]
push dword [esp + 0x34]
push dword [esp + 0x64]
push esi
push ebx
push edi
call fcn.100d65d0
add esp, 0x1c
mov eax, dword [esp + 0x20]
cmp dword [eax], 0
je 0x100d55cf
cmp dword [esp + 0x1b8], 0
je 0x100d5a4a
mov eax, dword [esp + 0x5c]
mov dword [eax], 0
jmp 0x100d5a4a
mov dword [ebx + 0x20c], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push 1
push esi
push edi
mov dword [ecx], eax
call fcn.1009f090
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebx + 0x208]
add esp, 0x10
mov edx, dword [ebx + 0x210]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x100d58f7
test edx, edx
je 0x100d59a6
mov esi, dword [edx + 0x44]
mov eax, dword [edx + 0x48]
test esi, esi
je 0x100d588f
mov dword [esi + 0x48], eax
jmp 0x100d5895
mov dword [ebx + 0x214], eax
mov ecx, dword [edx + 0x48]
mov eax, dword [edx + 0x44]
mov dword [ecx], eax
movzx eax, word [edx]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x1e8]
lea ebp, [eax + ecx*8]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x24]
push edx
push ebx
push edi
call fcn.100d6d10
mov eax, dword [esp + 0x34]
add esp, 0x14
cmp dword [eax], 0
jne 0x100d5a4a
cmp dword [esp + 0x24], 0
je 0x100d58e9
push 0
push ebp
push ebx
push edi
call fcn.100cfd30
add esp, 0x10
mov dword [esp + 0x24], 0
mov edx, esi
test esi, esi
jne 0x100d5880
lea eax, [esi + 1]
jmp 0x100d5a4c
test edx, edx
je 0x100d59a6
nop
mov ecx, dword [edx + 0x10]
mov esi, dword [eax + 0xc]
mov edi, dword [edx + 0x44]
cmp ecx, esi
jae 0x100d591e
mov eax, esi
sub eax, ecx
cmp eax, 0x80000000
ja 0x100d59a6
cmp ecx, esi
jbe 0x100d592e
sub ecx, esi
cmp ecx, 0x80000000
jb 0x100d59a6
mov eax, dword [edx + 0x48]
test edi, edi
je 0x100d593a
mov dword [edi + 0x48], eax
jmp 0x100d5940
mov dword [ebx + 0x214], eax
mov ecx, dword [edx + 0x48]
mov eax, dword [edx + 0x44]
mov esi, dword [esp + 0x64]
mov dword [ecx], eax
movzx eax, word [edx]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0x1e8]
lea ebp, [eax + ecx*8]
lea eax, [esp + 0x24]
push eax
push dword [esp + 0x24]
push edx
push ebx
push esi
call fcn.100d6d10
mov eax, dword [esp + 0x34]
add esp, 0x14
cmp dword [eax], 0
jne 0x100d5a4a
cmp dword [esp + 0x24], 0
je 0x100d5998
push 0
push ebp
push ebx
push esi
call fcn.100cfd30
add esp, 0x10
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x2c]
mov edx, edi
test edi, edi
jne 0x100d5900
mov eax, 1
jmp 0x100d5a4c
mov eax, 1
mov ecx, 0x1014b8ac
lock xadd dword [ecx], eax
jmp 0x100d5a4a
push ebx
push edi
call fcn.100d72a0
mov eax, dword [ebx + 0x37c]
add esp, 8
add eax, dword [ebx + 0x35c]
mov ecx, 0x1014b8d4
add eax, dword [ebx + 0x374]
mov edx, 0x1014b8d8
cmp eax, dword [0x1014b9e8]
mov eax, 1
cmovb ecx, edx
lock xadd dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 1
jmp 0x100d5a4a
push 0x101008a0
push 4
call fcn.100a62b0
push 0
push 0
push eax
jmp 0x100d4dfc
mov ecx, 0x1014b77c
mov eax, 1
lock xadd dword [ecx], eax
mov eax, dword [ebx + 0x3a4]
cmp eax, 0x14
jae 0x100d5a43
mov dword [ebx + eax*4 + 0x3a8], ebp
inc dword [ebx + 0x3a4]
mov byte [ebx + 0x472], 1
xor eax, eax
mov ecx, dword [esp + 0x18c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100f06e3
add esp, 0x180
ret