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

Disassembly:
push 0xffffffffffffffff
push 0x52b668
mov eax, dword fs:[0]
push eax
sub esp, 0x160
mov eax, dword [0x5b339c]
xor eax, esp
mov dword [esp + 0x15c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5b339c]
xor eax, esp
push eax
lea eax, [esp + 0x174]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [esi + 0x3d], 1
je 0x4a393b
mov ecx, dword [esi + 0x80]
push str..OPCReadTrans2.cpp
push 0x4f
push str.COPCReadTrans2::Complete
call fcn.00472450
mov ecx, eax
call fcn.00402490
xor ebp, ebp
cmp byte [esi + 0x3c], 0
je 0x4a2e6f
mov eax, dword [esi + 0x80]
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 0x4a3907
cmp byte [esi + 0x7c], 0
jne 0x4a2e83
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
mov ecx, esi
call eax
jmp 0x4a3907
lea ecx, [esp + 0x4c]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
call fcn.00469590
mov dword [esp + 0x17c], ebp
movzx eax, byte [esi + 0x85]
lea edi, [esi + 0x64]
test al, al
je 0x4a2eb6
mov ecx, dword [esi + 0x80]
push eax
push edi
call fcn.00473780
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
mov dword [esp + 0x18], ebp
sar eax, 2
cmp ebp, eax
jae 0x4a31d7
mov ecx, dword [edi + 0xc]
mov edi, dword [ecx + ebp*4]
lea edx, [esp + 0x154]
push edx
mov ecx, edi
call fcn.0045abb0
mov byte [esp + 0x17c], 1
mov ecx, dword [esi + 0x80]
push 2
lea eax, [esp + 0x158]
push eax
call fcn.00473600
test al, al
jne 0x4a2ff6
mov ecx, dword [esi + 0x80]
call fcn.00472450
lea ecx, [esp + 0x138]
push ecx
mov ecx, dword [esi + 0x80]
mov ebx, eax
call fcn.00473540
mov byte [esp + 0x17c], 2
mov ebp, dword [ebx]
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
lea ecx, [esp + 0x158]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
mov edx, dword [ebp]
push eax
push str.Security:__DA_READ__permission_denied_for_path___ls__and_name___ls_
push str.COPCReadTrans2::Complete
push 1
push ebx
call edx
add esp, 0x18
mov byte [esp + 0x17c], 1
lea ecx, [esp + 0x138]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x80]
call fcn.004ba040
mov byte [esp + 0x17c], 3
push 1
lea eax, [esp + 0x94]
push eax
mov ecx, edi
call fcn.0045b2b0
lea ecx, [esp + 0xa0]
push ecx
mov dword [esp + 0x8c], 0x80070005
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
lea eax, [esp + 0x80]
xor edx, edx
push eax
lea ecx, [esp + 0x50]
mov word [esp + 0xa0], dx
call fcn.004a2d40
mov byte [esp + 0x17c], 1
lea ecx, [esp + 0x80]
call fcn.004ba0c0
mov ebp, dword [esp + 0x18]
jmp 0x4a31a9
cmp byte [edi + 0x115], 0
je 0x4a3158
mov eax, dword [edi + 0x134]
test eax, eax
jbe 0x4a3158
xor ebx, ebx
test eax, eax
jbe 0x4a3126
jmp 0x4a3020
cmp ebx, dword [esi + 0x88]
jae 0x4a312c
lea ecx, [esp + 0xb0]
call fcn.004ba040
mov byte [esp + 0x17c], 4
lea ecx, [esp + 0xe0]
call fcn.004e4820
mov byte [esp + 0x17c], 5
lea ecx, [esp + 0xe0]
push ecx
mov ecx, edi
call fcn.0045cb60
push 1
lea edx, [esp + 0xc4]
push edx
mov ecx, edi
call fcn.0045b2b0
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xd0]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0xe8]
push ecx
lea edx, [esp + 0xd4]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp byte [edi + 0x138], 0
mov ax, word [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x100]
mov word [esp + 0xcc], ax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
je 0x4a30df
mov dword [esp + 0xb8], 0x40404
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x50]
call fcn.004a2d40
inc ebx
mov byte [esp + 0x17c], 4
lea ecx, [esp + 0xe0]
call fcn.004e4850
mov byte [esp + 0x17c], 1
lea ecx, [esp + 0xb0]
call fcn.004ba0c0
cmp dword [edi + 0x134], 0
ja 0x4a3020
cmp ebx, dword [esi + 0x88]
jne 0x4a31a9
mov ecx, dword [esi + 0x80]
call fcn.00472450
mov edx, dword [esi + 0x88]
mov ecx, dword [eax]
push edx
push str.WARNING:_Returning_maximum_number_of_samples__max___d_.
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
add esp, 0x14
jmp 0x4a31a9
lea ecx, [esp + 0x108]
call fcn.004ba040
mov byte [esp + 0x17c], 6
push 1
lea ecx, [esp + 0x11c]
push ecx
mov ecx, edi
call fcn.0045b2b0
lea edx, [esp + 0x108]
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0x114], eax
call fcn.004a2d40
mov byte [esp + 0x17c], 1
lea ecx, [esp + 0x108]
call fcn.004ba0c0
mov byte [esp + 0x17c], 0
lea ecx, [esp + 0x154]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esi + 0x74]
sub eax, dword [esi + 0x70]
lea edi, [esi + 0x64]
inc ebp
sar eax, 2
mov dword [esp + 0x18], ebp
cmp ebp, eax
jb 0x4a2ecb
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
mov dword [esp + 0x7c], ebx
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov dword [esp + 0x34], eax
xor ecx, ecx
mov eax, ebx
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov dword [esp + 0x34], eax
xor ecx, ecx
mov eax, ebx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, ebx
mov edx, 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
mov dword [esp + 0x28], eax
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0051965e
add esp, 0x14
push ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x24], eax
call fcn.004a0fc0
mov byte [esp + 0x17c], 7
xor edi, edi
test ebx, ebx
jbe 0x4a3413
xor ebp, ebp
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x5c]
jbe 0x4a32b5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x4a3697
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [eax + 0x10]
jb 0x4a32d8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x84]
call fcn.004ba060
mov byte [esp + 0x17c], 8
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x5c]
jbe 0x4a3305
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
push ecx
push eax
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0x58]
call fcn.004a27a0
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
sar eax, 5
cmp edi, eax
jb 0x4a3332
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x40]
mov dword [edx + ebp], ecx
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
sar eax, 5
cmp edi, eax
jb 0x4a3355
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x40]
mov dword [edx + ebp + 4], ecx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x40]
mov dword [ecx + ebp + 8], eax
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x40]
sar edx, 5
cmp edi, edx
jb 0x4a3388
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ax, word [esp + 0x9c]
mov ecx, dword [esp + 0x40]
mov word [ecx + ebp + 0xc], ax
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x40]
sar edx, 5
cmp edi, edx
jb 0x4a33ae
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x40]
xor eax, eax
mov word [ecx + ebp + 0xe], ax
mov edx, dword [esp + 0x44]
sub edx, dword [esp + 0x40]
sar edx, 5
cmp edi, edx
jb 0x4a33ce
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0xa0]
push eax
lea edx, [ecx + ebp + 0x10]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x20]
mov dword [ecx + edi*4], eax
mov byte [esp + 0x17c], 7
lea ecx, [esp + 0x80]
call fcn.004ba0c0
inc edi
add ebp, 0x20
cmp edi, ebx
jb 0x4a32a1
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x14], eax
cmp edi, eax
jbe 0x4a3431
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
cmp edi, eax
jbe 0x4a343f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
push edx
push ebp
push edi
push eax
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x60]
call fcn.004a2830
mov ecx, dword [esi + 0x80]
call fcn.00472450
mov ecx, dword [esi + 0x34]
mov edx, dword [eax]
mov edx, dword [edx]
push esi
push ecx
push ebx
push str.Adding__d_items_to_transaction__d___08x_
push str.COPCReadTrans2::Complete
push 2
push eax
call edx
mov ebp, dword [esp + 0x5c]
add esp, 0x1c
cmp ebp, dword [esp + 0x44]
jbe 0x4a3490
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
sub edx, eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], eax
cmp dword [esp + 0x40], eax
jbe 0x4a34d6
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x4a34e0
cmp ecx, dword [esp + 0x34]
je 0x4a34ea
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x6c]
cmp ebp, dword [esp + 0x74]
je 0x4a372e
cmp dword [esp + 0x28], ebx
jae 0x4a372e
test ecx, ecx
jne 0x4a369e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor ecx, ecx
cmp ebp, dword [ecx + 0x10]
jb 0x4a3519
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
cmp dword [ecx + eax], 0
je 0x4a352f
mov dword [esp + 0x68], 1
mov edx, dword [ebp]
mov dword [eax], edx
mov eax, dword [ebp + 0x10]
mov dword [edi], eax
mov ecx, dword [ebp + 0x14]
mov dword [edi + 4], ecx
mov edx, dword [ebp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], edx
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0x28]
mov dword [edi + 0xc], eax
movzx eax, word [ebp + 0xc]
mov word [ecx + edx*2], ax
and al, 0xc0
cmp al, 0xc0
je 0x4a3569
mov dword [esp + 0x64], 1
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x24]
mov dword [eax], ecx
mov edx, dword [ebp + 8]
push str.COPCReadTrans2::Complete
mov dword [eax + 4], edx
mov ecx, dword [esi + 0x80]
push 3
call fcn.00472450
push eax
call fcn.00401b30
add esp, 0xc
test eax, eax
je 0x4a36f2
lea eax, [esp + 0x154]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [esi + 0x80]
call fcn.00472450
mov edx, dword [esp + 0x14]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
mov ecx, dword [eax]
push edx
push ebx
push str._02d__OPCHANDLE_hClient_x
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
mov ecx, dword [esi + 0x80]
add esp, 0x18
call fcn.00472450
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 4]
mov ecx, dword [eax]
push edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
push edx
push str.____FILETIME_ftTimeStamp_x._x
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
mov ecx, dword [esi + 0x80]
add esp, 0x18
call fcn.00472450
mov edx, dword [esp + 0x1c]
movzx edx, word [edx + ebx*2]
mov ecx, dword [eax]
push edx
push str.____WORD_wQuality_x
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
add esp, 0x14
push 8
push 0
push edi
lea ecx, [esp + 0x160]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantTimeToDosDateTime]
mov ecx, dword [esi + 0x80]
test eax, eax
jl 0x4a36a5
call fcn.00472450
movzx ecx, word [edi]
mov edx, dword [eax]
mov edx, dword [edx]
push ecx
push str.____________vDataValue.vt_d
push str.COPCReadTrans2::Complete
push 3
push eax
call edx
mov ecx, dword [esi + 0x80]
add esp, 0x14
call fcn.00472450
mov edx, dword [esp + 0x15c]
mov ecx, dword [eax]
push edx
push str.____VARIANT_vDataValue_ls
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [ecx]
call eax
add esp, 0x14
jmp 0x4a36e0
mov eax, dword [eax]
jmp 0x4a32c9
mov ecx, dword [ecx]
jmp 0x4a350e
call fcn.00472450
mov ecx, dword [eax]
mov edx, dword [ecx]
push str.____VARIANT_vDataValue
push str.COPCReadTrans2::Complete
push 3
push eax
call edx
mov ecx, dword [esi + 0x80]
add esp, 0x10
push 0x10
push 0
push 0x10
push edi
push str.COPCReadTrans2::Complete
push 3
call fcn.00472450
mov ecx, eax
call fcn.004021a0
lea eax, [esp + 0x154]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x4a372a
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4a370d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
inc dword [esp + 0x28]
add dword [esp + 0x14], 4
add dword [esp + 0x24], 8
mov ecx, dword [esp + 0x6c]
add ebp, 0x20
add edi, 0x10
jmp 0x4a34be
mov eax, dword [eax]
jmp 0x4a3702
cmp byte [esi + 0x84], 0
mov ecx, dword [esi + 0x80]
je 0x4a379e
call fcn.00472450
mov ecx, dword [eax]
mov edx, dword [ecx]
push str.Firing_OnDataChange.
push str.COPCReadTrans2::Complete
push 3
push eax
call edx
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x40]
mov eax, dword [esi + 0x80]
mov ecx, dword [eax + 0xcc]
add esp, 0x10
push edx
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 0x100]
push edx
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x78]
push edi
push ebx
push edx
mov edx, dword [esp + 0x80]
push edx
push ecx
mov ecx, dword [esi + 0x34]
push ecx
push eax
call fcn.004a0460
jmp 0x4a3801
call fcn.00472450
mov edx, dword [eax]
push str.Firing_OnReadComplete.
push str.COPCReadTrans2::Complete
push 3
push eax
mov eax, dword [edx]
call eax
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0x80]
mov ecx, dword [eax + 0xcc]
add esp, 0x10
push edx
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0x100]
push edx
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x7c]
push ebx
push edx
mov edx, dword [esp + 0x80]
push edx
push ecx
mov ecx, dword [esi + 0x34]
push ecx
push eax
call fcn.004a0630
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4a380e
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
test ebx, ebx
jbe 0x4a382b
mov edi, dword [esp + 0x2c]
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea esp, [esp]
push edi
call ebp
add edi, 0x10
sub ebx, 1
jne 0x4a3820
mov eax, dword [esp + 0x2c]
xor ebp, ebp
cmp eax, ebp
je 0x4a383e
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x4a384f
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x4a3860
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x4a3871
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov byte [esp + 0x17c], 9
mov eax, dword [esp + 0x40]
cmp eax, ebp
je 0x4a388a
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
mov byte [esp + 0x17c], 0
mov edx, dword [esp + 0x34]
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x17c], 0xb
mov edi, dword [esp + 0x58]
cmp edi, ebp
je 0x4a38e3
mov ebx, dword [esp + 0x5c]
cmp edi, ebx
je 0x4a38da
mov eax, dword [edi]
mov edx, dword [eax]
push ebp
mov ecx, edi
call edx
add edi, 0x30
cmp edi, ebx
jne 0x4a38c6
mov edi, dword [esp + 0x58]
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x17c], 0xffffffff
mov eax, dword [esp + 0x4c]
push eax
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esi + 0x80]
push esi
call fcn.00475500
mov ecx, dword [esi + 0x80]
push 0
push 0x57ef93
push str..OPCReadTrans2.cpp
push 0x16b
push str.COPCReadTrans2::Complete
call fcn.00472450
mov ecx, eax
call fcn.00402520
mov ecx, dword [esp + 0x174]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x15c]
xor ecx, esp
call fcn.0051973e
add esp, 0x16c
ret