Function at 0x300025dc
Capabilities:
Accept command line arguments
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x3009c33d
mov eax, dword fs:[0]
push eax
sub esp, 0x198
mov eax, dword [0x3002dd90]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
push 0x11
mov dword [ebp - 0x150], esi
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
push 0x300b2c74
setl al
push 0xd0005
mov byte [esi + 0x44], al
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::Utilities::Start_int__struct__msotcfcf__]
call dword [sym.imp.ONMain.DLL_void___stdcall_Jot::JotMain_SetMainThreadID_void_]
push 0x3001f750
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::SetProgressWindowPositionStorageKey_struct__msoreg_const__]
push fcn.30055700
call dword [sym.imp.MSO.dll_Ordinal_8119]
lea ecx, [esi + 0x2c]
push ecx
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::RegisterErrorHandler_struct_MsoCF::AErrorHandler__]
mov eax, 0x300b4da8
mov word [eax], 0
add eax, 0x208
cmp eax, 0x300b61f8
jl 0x30002661
push 0x14
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::PerfMetrics::Start_int_]
cmp dword [esi + 0x3c], 0
jne 0x30002699
mov eax, dword [esi + 0x38]
test eax, eax
je 0x30038bd8
lea edx, [esi + 0x40]
push edx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [esi + 0x3c], eax
xor edi, edi
cmp dword [esi + 0x40], edi
jle 0x300026c2
mov ebx, dword [sym.imp.MSO.dll_Ordinal_639]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + edi*4]
push 1
push 0x30003300
push ecx
call ebx
test eax, eax
jne 0x300026c8
add edi, 1
cmp edi, dword [esi + 0x40]
jl 0x300026a6
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::PerfMetrics::Activate_void_]
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
lea edx, [esi + 0x80]
push edx
push 0x300b2c74
push 0xd0005
call dword [sym.imp.MSO.dll_Ordinal_1813]
push 1
call dword [sym.imp.MSO.dll_Ordinal_6839]
mov ecx, esi
call fcn.30003fbd
push ebx
call dword [sym.imp.MSO.dll_Ordinal_7784]
call dword [sym.imp.MSO.dll_Ordinal_1608]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x15c]
push eax
push 0x20019
push ebx
push 0x30003290
push 0x80000001
mov byte [ebp - 0x12c], bl
call edi
cmp eax, 2
jne 0x300040da
lea ecx, [ebp - 0x138]
push ecx
push 0x20019
push ebx
push 0x30003290
push 0x80000002
call edi
test eax, eax
je 0x30038be2
push ebx
push 0xd
call dword [sym.imp.MSO.dll_Ordinal_1111]
push 0x300030f0
call dword [sym.imp.MSO.dll_Ordinal_1455]
push 0x800
push 0x800
mov dword [ebp - 0x130], eax
call dword [sym.imp.MSO.dll_Ordinal_859]
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::Frame::Start_void_]
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0x1a4], ecx
lea ecx, [ebp - 0x1a4]
lea edx, [esi + 4]
lea eax, [ebp - 0x168]
push ecx
mov dword [ebp - 0x168], 0x300030f0
mov dword [ebp - 0x164], ebx
mov byte [ebp - 0x18c], 0
mov byte [ebp - 0x18b], 0
mov dword [ebp - 0x188], ebx
mov byte [ebp - 0x178], 0
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x198], 0x3001fbe8
mov dword [ebp - 0x194], 0x3001fd80
mov dword [ebp - 0x190], 0x3001f7c8
mov dword [ebp - 0x184], eax
mov byte [ebp - 0x180], 1
mov dword [ebp - 0x17c], 0xd
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::Frame::CreateTheApp_struct_MsoCF::Frame::CreateTheAppArgs__]
push 0x300030dc
push 0x300030cc
push 0x300030bc
push 0xb
call dword [sym.imp.MSO.dll_Ordinal_6792]
push 1
push 4
call sub.ONMain.DLL_void____stdcall_MsoCF::Memory::Allocator::Allocate_int__enum_MsoCF::Memory::FailureStrategy_
mov dword [ebp - 0x138], eax
cmp eax, ebx
mov dword [ebp - 4], ebx
je 0x300040ec
mov ecx, eax
call fcn.3000426b
mov edi, dword [esi + 0xb8]
cmp eax, edi
mov dword [ebp - 4], 0xffffffff
je 0x300040f3
cmp edi, ebx
mov dword [esi + 0xb8], eax
jne 0x30038bf5
mov ebx, dword [sym.imp.ONMain.DLL_struct_MsoCF::AFrameApp____stdcall_MsoCF::Frame::TheApp_void_]
mov dword [ebp - 0x148], 0
mov byte [ebp - 0x13a], 0
call ebx
mov edi, dword [esi + 0xb8]
lea edx, [ebp - 0x13a]
push edx
mov edx, dword [eax]
lea ecx, [ebp - 0x148]
push ecx
push 0
push eax
mov eax, dword [edx + 0x50]
call eax
push eax
mov ecx, edi
call fcn.3000431a
test al, al
jne 0x30038c07
cmp byte [ebp - 0x13a], 0
jne 0x30038c4f
push 0x30055840
call dword [sym.imp.MSO.dll_Ordinal_6774]
call fcn.30004682
call ebx
mov edx, dword [esi + 0x64]
mov dword [esi + 0x48], eax
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x44]
call eax
mov edi, dword [sym.imp.MSO.dll_Ordinal_1455]
push 0x3001f8d4
call edi
test eax, eax
jne 0x30038c77
push 0x3001f8d4
call edi
test eax, eax
jne 0x30038c8e
mov dword [ebp - 0x14c], 0
lea eax, [ebp - 0x14c]
push eax
mov dword [ebp - 4], 5
call dword [sym.imp.ONMain.DLL_bool___stdcall_Jot::FGetMyDocumentsFolder_struct_Jot::IFolderProxy___]
test al, al
je 0x3000294d
mov ecx, dword [ebp - 0x14c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x5c]
call eax
neg al
sbb eax, eax
add eax, 1
push eax
push 0x1bbd
call dword [sym.imp.MSO.dll_Ordinal_6797]
mov ecx, dword [esi + 0x30]
push ecx
push 0x300b0058
call dword [sym.imp.ONMain.DLL_void___stdcall_Jot::ExeServer::Init_class_ATL::CComModule___struct_HINSTANCE____]
push 0
push 0
xor bl, bl
push 0x30003278
mov ecx, esi
mov byte [ebp - 0x131], bl
call fcn.300046a6
test al, al
jne 0x30038ddd
mov eax, dword [esi + 0x48]
mov edx, dword [eax]
push 0
push eax
mov eax, dword [edx + 0x4c]
call eax
mov edi, dword [sym.imp.KERNEL32.dll_AddAtomW]
push 0x30003244
call edi
push 0x3000321c
call edi
push 0x30003208
call dword [sym.imp.KERNEL32.dll_AddAtomA]
mov dword [ebp - 0x138], 0
push 0
push 0
push 0x3001fe48
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.300046a6
test al, al
jne 0x30002a48
push 0
push 0
push 0x3001fe20
mov ecx, esi
call fcn.300046a6
test al, al
jne 0x30002a48
test bl, bl
jne 0x30002a48
push 1
push 8
call sub.ONMain.DLL_void____stdcall_MsoCF::Memory::Allocator::Allocate_int__enum_MsoCF::Memory::FailureStrategy_
test eax, eax
je 0x30004100
mov dword [eax], 0x30003120
mov dword [eax + 4], 0
push 1
push eax
push 0
push 0
mov dword [ebp - 0x138], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.MSO.dll_Ordinal_1641]
push 0
push 0
push 0x3001fdb4
mov ecx, esi
call fcn.300046a6
test al, al
jne 0x30002a48
push 0
push 0
push 0x3001fde0
mov ecx, esi
call fcn.300046a6
test al, al
jne 0x30002a48
call dword [sym.imp.MSO.dll_Ordinal_8181]
push 0x3001f8d4
mov byte [ebp - 0x140], 0
mov byte [ebp - 0x139], 0
call dword [sym.imp.MSO.dll_Ordinal_1455]
test eax, eax
jne 0x30038e3f
call dword [sym.imp.ONMain.DLL_public:_static_class_MsoCF::CLangConfig____stdcall_MsoCF::CLangConfig::Instance_void_]
mov edx, dword [ebp - 0x130]
cmp edx, dword [eax + 0x18]
jne 0x30038f0a
push 1
push 0x20
call sub.ONMain.DLL_void____stdcall_MsoCF::Memory::Allocator::Allocate_int__enum_MsoCF::Memory::FailureStrategy_
mov dword [ebp - 0x154], eax
test eax, eax
mov byte [ebp - 4], 9
je 0x30004107
push esi
mov ecx, eax
call fcn.30004737
mov edi, dword [esi + 0x68]
xor ebx, ebx
cmp eax, edi
mov byte [ebp - 4], 6
je 0x3000410e
cmp edi, ebx
mov dword [esi + 0x68], eax
jne 0x30038f44
mov ecx, dword [esi + 0x48]
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x140]
push edx
mov edi, ecx
movzx ecx, byte [esi + 0xd5]
push eax
push ecx
mov ecx, dword [edi]
lea edx, [esi + 0xa4]
push edx
mov edx, dword [ecx + 4]
lea eax, [esi + 8]
push eax
push edi
call edx
push eax
mov eax, dword [edi]
mov ecx, dword [eax]
push edi
call ecx
push eax
call dword [sym.imp.ONMain.DLL_struct_Jot::AMainApp____stdcall_Jot::CreateMainApp_struct_MsoCF::IActionManager___struct_MsoCF::IKeyMapMan___struct_Jot::AMainAppUser___class_Ofc::TOwnerPtrList_struct__msostartupaction____bool__bool__bool_]
mov ecx, dword [esi + 0x4c]
cmp eax, ecx
je 0x3000411b
cmp ecx, ebx
mov dword [esi + 0x4c], eax
jne 0x30038f56
cmp byte [esi + 0x44], 0
jne 0x30038f61
push ebx
call fcn.30004777
mov edi, eax
cmp edi, ebx
je 0x30002b2e
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov eax, dword [esi + 0xb0]
cmp eax, ebx
mov dword [esi + 0xb0], edi
jne 0x30038f7d
lea eax, [esi + 0x84]
push eax
call dword [sym.imp.MSO.dll_Ordinal_6719]
mov edi, dword [sym.imp.MSO.dll_Ordinal_1378]
call edi
cmp eax, 0x409
jne 0x30038f8a
mov dword [ebp - 0x12c], ebx
mov eax, dword [esi + 0x48]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [ebp - 0x12c]
mov edx, dword [0x30003718]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x300031f4
push eax
mov eax, dword [ebp - 0x130]
push ecx
mov ecx, dword [ebx]
push 1
push edx
push 0x30003318
push 1
push eax
call ecx
call edi
cmp eax, 0x409
jne 0x30038f98
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [0x3000371c]
mov edx, dword [ebp - 0x130]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x300031d4
push eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebx]
push 1
push ecx
push 0x30003720
push 2
push edx
call eax
call edi
cmp eax, 0x409
jne 0x30038fa6
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [ebp - 0x12c]
mov edx, dword [0x30003bc0]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x300031c0
push eax
mov eax, dword [ebp - 0x130]
push ecx
mov ecx, dword [ebx]
push 1
push edx
push 0x300038d0
push 3
push eax
call ecx
call edi
cmp eax, 0x409
jne 0x30038fb4
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [0x30003bc4]
mov edx, dword [ebp - 0x130]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x300031b0
push eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebx]
push 1
push ecx
push 0x30003bc8
push 4
push edx
call eax
call edi
cmp eax, 0x409
jne 0x30038fc2
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [ebp - 0x12c]
mov edx, dword [0x30003df0]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x30003190
push eax
mov eax, dword [ebp - 0x130]
push ecx
mov ecx, dword [ebx]
push 3
push edx
push 0x30003dd0
push 7
push eax
call ecx
call edi
cmp eax, 0x409
jne 0x30038fd0
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [0x30003db8]
mov edx, dword [ebp - 0x130]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x3000316c
push eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebx]
push 1
push ecx
push 0x30003cf8
push 5
push edx
call eax
call edi
cmp eax, 0x409
jne 0x30038fde
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [ebp - 0x12c]
mov edx, dword [0x30003dcc]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x30003158
push eax
mov eax, dword [ebp - 0x130]
push ecx
mov ecx, dword [ebx]
push 1
push edx
push 0x30003dbc
push 6
push eax
call ecx
call edi
cmp eax, 0x409
jne 0x30038fec
mov dword [ebp - 0x12c], 0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ebx, dword [eax]
push 1
mov dword [ebp - 0x130], eax
add ebx, 0x10
call edi
mov ecx, dword [GetAsyncKeyState]
mov edx, dword [ebp - 0x130]
sub eax, 0x409
neg eax
sbb eax, eax
and eax, 0x3000313c
push eax
mov eax, dword [ebp - 0x12c]
push eax
mov eax, dword [ebx]
push 1
push ecx
push 0x30003df4
push 8
push edx
call eax
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x300335f8
push eax
call edx
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call edx
mov edx, dword [0x30003098]
mov ecx, dword [eax]
push 3
push edx
push 0x300b0400
push 0x3000309c
push eax
mov eax, dword [ecx + 0x2c]
call eax
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call edx
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x300b1030
push 0x3000309c
push eax
call edx
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call edx
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 0x300b12a0
push 0x300030ac
push eax
call edx
cmp byte [esi + 0x44], 0
jne 0x30002f03
push 0x3001f910
call dword [sym.imp.MSO.dll_Ordinal_1455]
test eax, eax
jne 0x30002f03
push 0x30003110
mov ecx, esi
call fcn.300048c9
push 0x30003100
mov ecx, esi
call fcn.300048c9
cmp byte [ebp - 0x131], 0
jne 0x30002f17
mov eax, dword [esi + 0x38]
push eax
mov ecx, esi
call fcn.30004941
call fcn.300179b5
xor edi, edi
mov dword [ebp - 0x144], edi
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
lea edx, [ebp - 0x144]
push edx
push eax
mov eax, dword [ecx + 0x34]
mov byte [ebp - 4], 0xa
call eax
lea ecx, [ebp - 0x158]
push ecx
mov dword [ebp - 0x158], edi
call fcn.300179dc
test eax, eax
je 0x30002f5d
test byte [ebp - 0x158], 2
jne 0x30038ffa
cmp byte [ebp - 0x139], 0
jne 0x30039042
mov ebx, dword [ebp - 0x138]
cmp ebx, edi
je 0x30002f8e
call dword [sym.imp.MSO.dll_Ordinal_324]
mov eax, ebx
xor ebx, ebx
cmp eax, edi
mov dword [ebp - 0x138], ebx
je 0x30002f8e
push eax
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
call dword [sym.imp.ONMain.DLL_void___stdcall_Jot::ExeServer::Start_void_]
cmp byte [ebp - 0x131], 0
jne 0x3003904e
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x160], 0x20160
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call edx
mov edx, dword [ebp - 0x144]
mov ecx, dword [eax]
push edi
push edi
push 1
push edi
push 0xea60
push 2
push edx
lea edx, [ebp - 0x160]
push edx
push eax
mov eax, dword [ecx + 0x78]
call eax
cmp byte [ebp - 0x140], 0
jne 0x30003023
mov eax, dword [esi + 0x5c]
cmp eax, edi
je 0x30003023
cmp dword [eax + 0x44], edi
je 0x30003023
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x12c], 0x205a9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call edx
mov edx, dword [ebp - 0x144]
mov ecx, dword [eax]
push edi
push 1
push 1
push edi
push 0x3a98
push 0x64
push edx
lea edx, [ebp - 0x12c]
push edx
push eax
mov eax, dword [ecx + 0x78]
call eax
push 0x1f6
call dword [sym.imp.ONMain.DLL_void___stdcall_MsoCF::PerfMetrics::Mark_int_]
push 1
push 0x631
call dword [sym.imp.MSO.dll_Ordinal_6797]
mov ecx, esi
call fcn.30006c21
mov eax, dword [ebp - 0x144]
cmp eax, edi
mov byte [ebp - 4], 6
je 0x30003058
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp ebx, edi
jne 0x30039060
mov eax, dword [ebp - 0x14c]
cmp eax, edi
mov dword [ebp - 4], 0xffffffff
je 0x30003079
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.30001d24
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x15c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x30002753
xor eax, eax
jmp 0x30002846
cmp eax, ebx
je 0x3000285b
jmp 0x30002869
xor eax, eax
jmp 0x30002a00
xor eax, eax
jmp 0x30002aa1
cmp eax, ebx
je 0x30002ab2
jmp 0x30002abd
cmp eax, ebx
je 0x30002b05
jmp 0x30002b10
mov eax, 0x3001db80
jmp 0x3000268b
mov edx, dword [ebp - 0x138]
mov byte [ebp - 0x12c], 1
push edx
jmp 0x300040e1
mov ecx, edi
call fcn.3001d875
push edi
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
jmp 0x30002869
cmp dword [ebp - 0x148], 0
je 0x30038c4f
mov ecx, dword [esi + 0x38]
push ecx
mov dword [ebp - 0x174], 0x9753
call dword [sym.imp.MSO.dll_Ordinal_295]
lea ecx, [ebp - 0x174]
push ecx
lea edx, [eax + eax + 2]
mov eax, dword [esi + 0x38]
push 0
mov dword [ebp - 0x170], edx
mov edx, dword [ebp - 0x148]
push 0x4a
push edx
mov dword [ebp - 0x16c], eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, dword [esi + 0xb8]
test edi, edi
mov dword [esi + 0xb8], 0
je 0x30038c70
mov ecx, edi
call fcn.3001d875
push edi
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
xor al, al
jmp 0x3000307b
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
call edx
push eax
call dword [sym.imp.MSO.dll_Ordinal_1515]
jmp 0x300028f3
xor edi, edi
mov dword [ebp - 0x140], edi
lea eax, [ebp - 0x140]
push eax
mov dword [ebp - 4], 1
call dword [sym.imp.ONMain.DLL_bool___stdcall_Jot::FGetMyDocumentsFolder_struct_Jot::IFolderProxy___]
test al, al
je 0x30038e05
mov ecx, dword [ebp - 0x140]
cmp ecx, edi
je 0x30038e05
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x58]
push edi
call eax
test al, al
jne 0x30038e05
mov dword [ebp - 0x138], edi
mov ecx, dword [ebp - 0x140]
push edi
push edi
push edi
lea edx, [ebp - 0x138]
push edx
push 0x80
push 1
push edi
push edi
push ecx
mov eax, esp
mov dword [ebp - 0x154], esp
mov dword [eax], edi
push ecx
mov eax, esp
mov dword [eax], edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x30]
mov byte [ebp - 4], 3
mov dword [ebp - 0x154], esp
call edx
mov dword [ebp - 4], 2
jmp 0x30038d2e
mov ecx, dword [ebp - 0x138]
test ecx, ecx
je 0x30038d45
mov eax, dword [ecx]
mov edx, dword [eax + 0x28]
push 0
call edx
test al, al
jne 0x30038d83
mov eax, dword [esi + 0x64]
push 0
push 0x134
push 0x2d0063
push eax
call dword [sym.imp.MSO.dll_Ordinal_7321]
cmp eax, 7
jne 0x30038d83
mov eax, dword [ebp - 0x138]
test eax, eax
mov byte [ebp - 4], 1
je 0x30038d76
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp - 0x140]
test eax, eax
jmp 0x30038e27
mov ecx, dword [ebp - 0x138]
test ecx, ecx
je 0x30038dab
mov eax, dword [ecx]
mov edx, dword [eax + 0x9c]
push 0
push 1
push 0
push 0
push 0
push 0
push 0
call edx
mov ecx, dword [ebp - 0x138]
test ecx, ecx
mov byte [ebp - 4], 1
je 0x30038dbb
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 8]
call ecx
mov eax, dword [ebp - 0x140]
test eax, eax
mov dword [ebp - 4], 0xffffffff
je 0x30002902
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x30002902
mov bl, 1
push 0x3001f8d4
mov byte [ebp - 0x131], bl
call dword [sym.imp.MSO.dll_Ordinal_1455]
test eax, eax
je 0x30002989
xor bl, bl
mov byte [ebp - 0x131], bl
jmp 0x3000297c
mov edx, dword [esi + 0x64]
push edi
push 0x134
push 0x2d0063
push edx
call dword [sym.imp.MSO.dll_Ordinal_7321]
cmp eax, 7
jne 0x30038dbb
mov eax, dword [ebp - 0x140]
cmp eax, edi
mov dword [ebp - 4], 0xffffffff
je 0x30038e38
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor al, al
jmp 0x3000307b
mov ecx, dword [sym.imp.ONMain.DLL_class_MsoCF::CFastBufferAllocator_MsoCF::g_FastBufferAllocator]
mov eax, 0x102
lea edx, [ebp - 0x118]
mov byte [ebp - 0x140], 1
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x120], eax
mov word [ebp - 0x118], 0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
mov byte [ebp - 4], 8
call edx
mov edi, dword [sym.imp.MSO.dll_Ordinal_2389]
mov ecx, eax
mov eax, dword [ebp - 0x120]
push 0x30039090
cdq
push ecx
sub eax, edx
mov edx, dword [ebp - 0x124]
lea ecx, [ebp - 0x150]
push ecx
sar eax, 1
push eax
push edx
call edi
test eax, eax
jne 0x30038ee4
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push eax
call edx
mov ecx, eax
mov eax, dword [ebp - 0x120]
push 0x3003906c
cdq
push ecx
sub eax, edx
mov edx, dword [ebp - 0x124]
lea ecx, [ebp - 0x150]
push ecx
sar eax, 1
push eax
push edx
call edi
mov eax, dword [ebp - 0x124]
lea ecx, [ebp - 0x118]
cmp eax, ecx
mov byte [ebp - 4], 6
je 0x30038efe
push eax
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
push 3
call fcn.3005afd3
jmp 0x30002a7e
lea eax, [ebp - 0x130]
push eax
push 0x3003fce0
call dword [sym.imp.MSO.dll_Ordinal_1605]
test eax, eax
je 0x30002a7e
cmp dword [ebp - 0x130], 1
jne 0x30002a7e
push 2
call fcn.3005afd3
mov byte [ebp - 0x139], 1
jmp 0x30002a7e
mov ecx, edi
call fcn.3001d4de
push edi
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
jmp 0x30002abd
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
jmp 0x30002b10
mov eax, dword [esi + 0x3c]
cmp eax, ebx
mov dword [esi + 0x38], ebx
je 0x30038f72
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
jmp 0x30002b1a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x30002b42
mov ecx, dword [esi + 0x64]
mov dword [ebp - 0x12c], ecx
jmp 0x30002b68
mov edx, dword [esi + 0x64]
mov dword [ebp - 0x12c], edx
jmp 0x30002bca
mov ecx, dword [esi + 0x64]
mov dword [ebp - 0x12c], ecx
jmp 0x30002c2c
mov edx, dword [esi + 0x64]
mov dword [ebp - 0x12c], edx
jmp 0x30002c8e
mov ecx, dword [esi + 0x64]
mov dword [ebp - 0x12c], ecx
jmp 0x30002cf0
mov edx, dword [esi + 0x64]
mov dword [ebp - 0x12c], edx
jmp 0x30002d52
mov ecx, dword [esi + 0x64]
mov dword [ebp - 0x12c], ecx
jmp 0x30002db4
mov edx, dword [esi + 0x64]
mov dword [ebp - 0x12c], edx
jmp 0x30002e16
mov eax, dword [esi + 0xcc]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x130], 0x3005a
mov edx, dword [eax]
push eax
mov eax, dword [edx]
call eax
mov edx, dword [ebp - 0x144]
mov ecx, dword [eax]
push edi
push edi
push 1
push 1
push 1
push 0xa
push edx
lea edx, [ebp - 0x130]
push edx
push eax
mov eax, dword [ecx + 0x78]
call eax
jmp 0x30002f5d
push 1
call fcn.3005afd3
jmp 0x30002f6a
mov eax, dword [esi + 0x48]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x68]
push 1
push eax
call edx
jmp 0x30002fa1
push ebx
call sub.ONMain.DLL_void___stdcall_MsoCF::Memory::Allocator::Free_void__
jmp 0x30003060