Function at 0x40c380
Capabilities:
Listen for remote procedure calls

Disassembly:
push ebp
mov ecx, 0x14
mov ebp, esp
push edi
push esi
mov esi, 0x44fe80
push ebx
lea ebx, [ebp - 0x138]
mov edi, ebx
sub esp, 0x180
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x138], 0x44fe20
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.winetest:test_ndr_buffer
mov dword [esp + 4], 0x14
mov dword [esp], 0x44a39c
call dword [sym.imp.rpcrt4.dll_RpcServerUseProtseqEpA]
sub esp, 0x10
mov esi, eax
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa38
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.RpcServerUseProtseqEp_failed_with_status__lu_n
mov dword [esp], eax
call fcn.004062b0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x44fe20
call dword [sym.imp.rpcrt4.dll_RpcServerRegisterIf]
sub esp, 0xc
mov esi, eax
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa3a
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.RpcServerRegisterIf_failed_with_status__lu_n
mov dword [esp], eax
call fcn.004062b0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x14
mov dword [esp], 1
call dword [sym.imp.rpcrt4.dll_RpcServerListen]
sub esp, 0xc
mov esi, eax
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa3c
xor eax, eax
test esi, esi
sete al
mov dword [esp + 8], esi
mov dword [esp + 4], str.RpcServerListen_failed_with_status__lu_n
mov dword [esp], eax
call fcn.004062b0
test esi, esi
je 0x40c4b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [ebp - 0x16c]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], str.winetest:test_ndr_buffer
mov dword [esp + 8], 0
mov dword [esp + 4], 0x44a39c
mov dword [esp], 0
call dword [sym.imp.rpcrt4.dll_RpcStringBindingComposeA]
sub esp, 0x18
mov esi, eax
mov eax, 0xa44
call fcn.00405ac0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x44df18
lea esi, [ebp - 0x168]
mov dword [esp], eax
call fcn.004062b0
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x16c]
mov dword [esp], eax
call dword [sym.imp.rpcrt4.dll_RpcBindingFromStringBindingA]
sub esp, 8
mov edi, eax
mov eax, 0xa47
call fcn.00405ac0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x44df40
mov dword [esp], eax
call fcn.004062b0
lea edx, [ebp - 0x16c]
mov dword [esp], edx
call dword [sym.imp.rpcrt4.dll_RpcStringFreeA]
lea eax, [ebp - 0x164]
sub esp, 4
mov dword [esp + 8], ebx
lea ebx, [ebp - 0xe8]
mov dword [esp], eax
mov dword [esp + 0xc], 5
mov dword [esp + 4], ebx
call dword [sym.imp.rpcrt4.dll_NdrClientInitializeNew]
mov eax, dword [ebp - 0x168]
sub esp, 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], 0xa
mov dword [esp], ebx
call dword [sym.imp.rpcrt4.dll_NdrGetBuffer]
sub esp, 0xc
mov edi, eax
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa4d
xor eax, eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.NdrGetBuffer_should_have_returned_the_same_value_as_StubMsg.Buffer_instead_of__p_n
cmp dword [ebp - 0xe4], edi
sete al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa4e
call fcn.00405ac0
mov dword [esp + 4], str.RpcMessage.Handle_should_not_have_been_NULL_n
xor eax, eax
mov edi, dword [ebp - 0x164]
test edi, edi
setne al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa4f
call fcn.00405ac0
mov dword [esp + 4], str.RpcMessage.Buffer_should_not_have_been_NULL_n
xor eax, eax
mov edx, dword [ebp - 0x15c]
test edx, edx
setne al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa50
call fcn.00405ac0
mov edx, dword [ebp - 0x158]
mov eax, 1
cmp edx, 0xa
je 0x40c65c
mov ecx, dword [0x4b3310]
test ecx, ecx
sete cl
xor eax, eax
cmp edx, 0xc
sete al
and eax, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.RpcMessage.BufferLength_should_have_been_10_instead_of__d_n
call fcn.004062b0
mov eax, 0xa53
call fcn.00405ac0
mov eax, dword [ebp - 0x13c]
mov dword [esp + 4], str.RpcMessage.RpcFlags_should_have_been_0x0_instead_of_0x_lx_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa54
call fcn.00405ac0
mov dword [esp + 4], str.Buffer_should_not_have_been_NULL_n
xor eax, eax
mov edx, dword [ebp - 0xe4]
test edx, edx
setne al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa55
call fcn.00405ac0
mov eax, dword [ebp - 0xe0]
mov dword [esp + 4], str.BufferStart_should_have_been_NULL_instead_of__p_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa56
call fcn.00405ac0
mov eax, dword [ebp - 0xdc]
mov dword [esp + 4], str.BufferEnd_should_have_been_NULL_instead_of__p_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
mov edi, dword [0x4b3310]
call fcn.00448020
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
lea edx, [ecx + ecx]
xor ecx, ecx
test edi, edi
setne cl
or edx, ecx
mov dword [eax + 0x10], edx
jmp 0x40c784
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa58
mov eax, dword [ebp - 0xd4]
mov dword [esp + 4], str.BufferLength_should_have_left_as_0_instead_of_being_set_to__ld_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
call fcn.00448020
shr dword [eax + 0x10], 1
call fcn.00448020
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x40c748
movzx eax, byte [ebp - 0x77]
and eax, 2
mov byte [ebp - 0x16d], al
jne 0x40c9b0
mov eax, 0xa5b
call fcn.00405ac0
movzx edx, byte [ebp - 0xb0]
mov dword [esp + 4], str.fBufferValid_should_have_been_TRUE_instead_of_0x_x_n
mov dword [esp + 8], edx
mov edi, dword [0x4b3310]
mov eax, edx
test edi, edi
sete dl
cmp al, 1
sete al
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.004062b0
mov edx, dword [ebp - 0x158]
mov edi, dword [sym.imp.rpcrt4.dll_NdrFreeBuffer]
mov dword [ebp - 0xd4], 1
mov dword [ebp - 0x174], edx
mov dword [esp], ebx
call edi
mov eax, 0xa62
sub esp, 4
call fcn.00405ac0
mov dword [esp + 4], str.RpcMessage.Handle_should_not_have_been_NULL_n
xor eax, eax
mov ecx, dword [ebp - 0x164]
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.004062b0
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa63
xor eax, eax
mov dword [esp + 4], str.RpcMessage.Buffer_should_not_have_been_NULL_n
mov edx, dword [ebp - 0x15c]
test edx, edx
setne al
mov dword [esp], eax
call fcn.004062b0
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa64
mov eax, dword [ebp - 0x158]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x174]
mov dword [esp + 4], str.RpcMessage.BufferLength_should_have_been_left_as__ld_instead_of__d_n
cmp eax, edx
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa65
call fcn.00405ac0
mov dword [esp + 4], str.Buffer_should_not_have_been_NULL_n
xor eax, eax
mov ecx, dword [ebp - 0xe4]
test ecx, ecx
setne al
mov dword [esp], eax
call fcn.004062b0
mov eax, 0xa66
call fcn.00405ac0
mov eax, dword [ebp - 0xd4]
mov dword [esp + 4], str.BufferLength_should_have_left_as_1_instead_of_being_set_to__ld_n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004062b0
cmp byte [ebp - 0x16d], 0
jne 0x40c9e0
mov eax, 0xa68
call fcn.00405ac0
movzx edx, byte [ebp - 0xb0]
mov dword [esp + 4], str.fBufferValid_should_have_been_FALSE_instead_of_0x_x_n
mov eax, edx
mov dword [esp + 8], edx
mov edx, dword [0x4b3310]
test edx, edx
sete dl
test al, al
sete al
movzx eax, al
and eax, edx
mov dword [esp], eax
call fcn.004062b0
mov dword [esp], ebx
call edi
sub esp, 4
mov dword [esp], esi
call dword [sym.imp.rpcrt4.dll_RpcBindingFree]
sub esp, 4
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.rpcrt4.dll_RpcServerUnregisterIf]
sub esp, 0xc
mov ebx, eax
call fcn.00448020
mov dword [eax], 0x44d655
mov dword [eax + 4], 0xa72
xor eax, eax
test ebx, ebx
sete al
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x44e2bc
mov dword [esp], eax
call fcn.004062b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xa5d
call fcn.00405ac0
movzx eax, byte [ebp - 0x77]
mov dword [esp + 4], str.fBufferValid_should_have_been_non_zero_instead_of_0x_x_n
shr al, 1
and eax, 1
mov dword [esp + 8], eax
mov dword [esp], eax
call fcn.004062b0
jmp 0x40c7e6
mov eax, 0xa6a
call fcn.00405ac0
movzx eax, byte [ebp - 0x77]
mov dword [esp + 4], str.fBufferValid_should_have_been_FALSE_instead_of__d_n
shr al, 1
mov edx, eax
xor eax, 1
and edx, 1
and eax, 1
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.004062b0
jmp 0x40c93b