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

Disassembly:
sub esp, 0x20
push esi
mov esi, ecx
cmp byte [esi + 0x3d], 1
je 0x4bbf3c
mov ecx, dword [esi + 0x78]
push str..OPCWriteTrans2.cpp
push 0x29
push str.COPCWriteTrans2::Complete
call fcn.00472450
mov ecx, eax
call fcn.00402490
cmp byte [esi + 0x3c], 0
je 0x4bbcd0
mov eax, dword [esi + 0x78]
mov ecx, dword [eax + 0xcc]
mov edx, dword [esi + 0x34]
mov eax, dword [eax + 0x100]
push ecx
push edx
push eax
call fcn.004a09b0
jmp 0x4bbf11
mov ecx, dword [esi + 0x78]
push ebx
push ebp
mov ebp, dword [esi + 0x70]
sub ebp, dword [esi + 0x6c]
push edi
mov dword [esp + 0x1c], 0
sar ebp, 2
call fcn.00472450
mov edx, dword [esi + 0x34]
mov ecx, dword [eax]
push esi
push edx
push ebp
push str.Adding__d_items_to_transaction__d___08x_
push str.COPCWriteTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
xor ecx, ecx
mov eax, ebp
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov dword [esp + 0x38], eax
xor ecx, ecx
mov eax, ebp
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov edi, dword [esi + 0x6c]
add esp, 0x24
mov ebx, eax
mov dword [esp + 0x24], ebx
cmp edi, dword [esi + 0x70]
jbe 0x4bbd50
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x60]
sub ecx, ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], 0
mov edi, ebx
mov dword [esp + 0x14], ecx
nop
mov ecx, dword [esi + 0x70]
mov dword [esp + 0x20], ecx
cmp dword [esi + 0x6c], ecx
jbe 0x4bbd86
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x60]
test eax, eax
je 0x4bbd91
cmp eax, ecx
je 0x4bbd9b
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
cmp dword [esp + 0x2c], ecx
je 0x4bbeb0
cmp dword [esp + 0x10], ebp
jae 0x4bbeb0
test eax, eax
jne 0x4bbea5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax + 0x10]
jb 0x4bbdd2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x2c]
mov ebx, dword [eax]
mov ecx, dword [ebx]
mov edx, dword [esp + 0x14]
mov dword [edx + edi], ecx
mov eax, dword [ebx + 0x18]
mov dword [edi], eax
test eax, eax
je 0x4bbdf2
mov dword [esp + 0x1c], 1
mov ecx, dword [esi + 0x78]
push str.COPCWriteTrans2::Complete
push 3
call fcn.00472450
push eax
call fcn.00401b30
add esp, 0xc
test eax, eax
je 0x4bbe5a
mov ecx, dword [esi + 0x78]
call fcn.00472450
mov edx, dword [esp + 0x14]
mov edx, dword [edx + edi]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x14]
push edx
push str._02d__OPCHANDLE_hClient_x
push str.COPCWriteTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
mov ecx, dword [esi + 0x78]
add esp, 0x18
call fcn.00472450
mov edx, dword [edi]
mov ecx, dword [eax]
push edx
push str.____hrError_x
push str.COPCWriteTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
add esp, 0x14
lea ecx, [ebx + 0x10]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x2c]
add esp, 4
test eax, eax
jne 0x4bbeac
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax + 0x10]
jb 0x4bbe8c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add dword [esp + 0x2c], 4
inc dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add edi, 4
jmp 0x4bbd70
mov eax, dword [eax]
jmp 0x4bbdc3
mov eax, dword [eax]
jmp 0x4bbe7d
mov ecx, dword [esi + 0x78]
call fcn.00472450
mov ecx, dword [eax]
mov edx, dword [ecx]
push str.Firing_OnWriteComplete.
push str.COPCWriteTrans2::Complete
push 3
push eax
call edx
mov edi, dword [esp + 0x28]
mov eax, dword [esi + 0x78]
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0xcc]
add esp, 0x10
push ebx
push edi
push ebp
push ecx
mov ecx, dword [esi + 0x34]
push edx
mov edx, dword [eax + 0x100]
push ecx
push edx
call fcn.004a0800
test edi, edi
je 0x4bbf01
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
test ebx, ebx
je 0x4bbf0e
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
pop edi
pop ebp
pop ebx
mov ecx, dword [esi + 0x78]
push esi
call fcn.00475500
mov ecx, dword [esi + 0x78]
push 0
push 0x57ef93
push str..OPCWriteTrans2.cpp
push 0x68
push str.COPCWriteTrans2::Complete
call fcn.00472450
mov ecx, eax
call fcn.00402520
pop esi
add esp, 0x20
ret