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

Disassembly:
push 0xffffffffffffffff
push 0x43f8c3
mov eax, dword fs:[0]
push eax
mov eax, 0x646c
call fcn.00439a70
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44e2d0]
xor eax, esp
push eax
lea eax, [esp + 0x6480]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x6490]
cmp byte [esp + 0x6498], 0
mov edi, dword [esp + 0x6494]
mov eax, dword [edi]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
je 0x42293b
mov eax, dword [ebp + 0x11f0]
mov ecx, dword [eax]
lea esi, [ebp + 0x11ec]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
test esi, esi
mov ebx, dword [ebp + 0x11f0]
lea eax, [ebp + 0x11ec]
je 0x4227f5
cmp esi, eax
je 0x4227fa
call fcn.0042931e
cmp dword [esp + 0x1c], ebx
je 0x42293b
lea ecx, [edi + 4]
mov eax, ecx
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
lea edi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x422821
sub eax, edi
push eax
push ecx
lea ecx, [esp + 0x3c]
call fcn.004060e0
xor ebx, ebx
cmp esi, ebx
mov dword [esp + 0x6488], ebx
jne 0x422849
call fcn.0042931e
mov edi, dword [esp + 0x1c]
cmp edi, dword [esi + 4]
jne 0x422857
call fcn.0042931e
lea ecx, [edi + 0x14]
mov eax, ecx
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
lea esi, [eax + 1]
nop
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x422870
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x5c]
call fcn.004060e0
cmp dword [esp + 0x4c], 0x10
mov ecx, dword [esp + 0x38]
jae 0x422895
lea ecx, [esp + 0x38]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x48]
cmp esi, ebx
mov eax, esi
jb 0x4228a5
mov eax, ebx
mov edi, dword [esp + 0x6c]
cmp edi, 0x10
mov edx, dword [esp + 0x58]
jae 0x4228b6
lea edx, [esp + 0x58]
call section..text
test eax, eax
jne 0x4228d1
cmp esi, ebx
jae 0x4228c8
or eax, 0xffffffff
jmp 0x4228cf
xor eax, eax
cmp esi, ebx
setne al
test eax, eax
sete bl
cmp edi, 0x10
jb 0x4228e6
mov edx, dword [esp + 0x58]
push edx
call fcn.004293c2
add esp, 4
mov dword [esp + 0x6488], 0xffffffff
cmp dword [esp + 0x4c], 0x10
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], 0
mov byte [esp + 0x58], 0
jb 0x42291a
mov eax, dword [esp + 0x38]
push eax
call fcn.004293c2
add esp, 4
test bl, bl
jne 0x422d84
lea esi, [esp + 0x18]
call fcn.00427520
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x6494]
jmp 0x4227e1
cmp byte [esp + 0x6498], 0
mov ecx, dword [esp + 0x20]
mov dword [edi], ecx
je 0x422a15
cmp dword [ebp + 0x7c], 0
jne 0x42295c
mov dword [ebp + 0x7c], 1
mov eax, dword [ebp + 0x7c]
mov ebx, eax
add eax, 1
mov dword [ebp + 0x7c], eax
lea eax, [ebp + 0x123c]
mov dword [esp + 0x30], eax
add eax, 4
push eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], vtable.fund::lock::scoped_lock_class_fund::lock::critical_section_.0
mov dword [esp + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, 0x31fc
mov dword [esp + 0x6488], 2
call fcn.00439a70
mov esi, edi
mov edi, esp
mov ecx, 0xc7e
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push ebx
lea esi, [esp + 0x6480]
call fcn.00427730
mov edx, dword [eax]
add eax, 4
push 0x31f9
push eax
lea eax, [esp + 0x328c]
push eax
mov dword [esp + 0x328c], edx
call fcn.0042d8a0
add esp, 0x320c
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x78]
push edx
lea ebx, [ebp + 0x11ec]
call fcn.00425200
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edi, dword [esp + 0x6494]
jmp 0x422a20
mov ecx, dword [esp + 0x649c]
mov dword [esp + 0x28], ecx
cmp dword [ebp + 8], 0
je 0x422ae3
push 0x31f9
push edi
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp + 0x84], eax
je 0x422abf
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov eax, dword [ebp + 4]
lea edx, [esp + 0x24]
push edx
lea esi, [ebp + 4]
push 0x44770c
push eax
mov dword [esp + 0x30], 0
call dword [sym.imp.ole32.dll_CoGetInterfaceAndReleaseStream]
test eax, eax
mov dword [esp + 0x2c], eax
jl 0x422aa9
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
push edx
push eax
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x24]
push esi
push ecx
push 0x44770c
mov dword [esp + 0x38], eax
call dword [sym.imp.ole32.dll_CoMarshalInterThreadInterfaceInStream]
test eax, eax
jge 0x422aa9
mov dword [esi], 0
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x422d31
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x24]
lea ecx, [esp + 0x18]
push ecx
push eax
call edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x422d31
cmp dword [ebp + 0x68], 0
je 0x422d38
lea edx, [esp + 0x20]
mov dword [edi + 0x31e1], ebp
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax]
push edx
push edi
push eax
mov eax, dword [ecx + 0x14]
call eax
test eax, eax
jl 0x422d38
lea esi, [ebp + 0x123c]
mov dword [esp + 0x30], esi
add esi, 4
push esi
mov dword [esp + 0x30], vtable.fund::lock::scoped_lock_class_fund::lock::critical_section_.0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x6488], 3
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
lea ecx, [esp + 0x78]
push ecx
lea ebx, [ebp + 0x11f8]
mov dword [esp + 0x24], edx
call fcn.00411ae0
push esi
mov dword [esp + 0x648c], 0xffffffff
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
mov eax, dword [ebp + 0x80]
call fcn.00420270
mov eax, dword [ebp + 0x68]
mov ecx, dword [eax]
xor ebx, ebx
add edi, 4
cmp dword [ebp + 0x78], ebx
je 0x422b9f
mov edx, dword [esp + 0x20]
push edx
push edi
push eax
mov eax, dword [ecx + 0x114]
call eax
jmp 0x422ba6
mov edx, dword [ecx + 0x18]
push edi
push eax
call edx
mov dword [esp + 0x2c], eax
mov eax, edi
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], ebx
mov byte [esp + 0x38], bl
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x422bc0
sub eax, edx
push eax
push edi
lea ecx, [esp + 0x3c]
call fcn.004060e0
lea eax, [esp + 0x18]
lea esi, [ebp + 0x1258]
push eax
lea ebx, [esp + 0x38]
mov dword [esp + 0x648c], 4
call fcn.004259f0
mov dword [esp + 0x6488], 0xffffffff
cmp dword [esp + 0x4c], 0x10
jb 0x422c14
mov ecx, dword [esp + 0x38]
push ecx
call fcn.004293c2
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [ebp + 0x125c]
lea ebx, [ebp + 0x1258]
je 0x422c2c
cmp eax, ebx
je 0x422c31
call fcn.0042931e
cmp dword [esp + 0x1c], esi
je 0x422c7e
push edi
lea ecx, [esp + 0x38]
call fcn.00403a90
lea edx, [esp + 0x34]
push edx
mov ecx, ebx
mov dword [esp + 0x648c], 5
call fcn.00425720
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
mov dword [esp + 0x6488], 0xffffffff
cmp dword [esp + 0x4c], 0x10
jb 0x422d31
mov edx, dword [esp + 0x38]
push edx
jmp 0x422d29
mov eax, dword [esp + 0x20]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push edi
call fcn.00403a90
lea esi, [esp + 0x74]
call fcn.00427750
add esp, 0x20
mov esi, eax
push 0xffffffffffffffff
mov dword [esp + 0x648c], 6
push 0
mov edi, 0xf
push esi
lea ecx, [esp + 0x40]
mov dword [esp + 0x58], edi
mov dword [esp + 0x54], 0
mov byte [esp + 0x44], 0
call fcn.00404dc0
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x50], ecx
lea edx, [esp + 0x34]
push edx
push ebx
lea ebx, [esp + 0x7c]
mov byte [esp + 0x6490], 7
call fcn.00425810
mov esi, 0x10
cmp dword [esp + 0x4c], esi
jb 0x422d05
mov eax, dword [esp + 0x38]
push eax
call fcn.004293c2
add esp, 4
xor eax, eax
mov dword [esp + 0x6488], 0xffffffff
cmp dword [esp + 0x6c], esi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], eax
mov byte [esp + 0x38], al
jb 0x422d31
mov ecx, dword [esp + 0x58]
push ecx
call fcn.004293c2
add esp, 4
cmp dword [esp + 0x2c], 0
jge 0x422d88
lea eax, [ebp + 0x123c]
lea edi, [eax + 4]
push edi
mov dword [esp + 0x1c], vtable.fund::lock::scoped_lock_class_fund::lock::critical_section_.0
mov dword [esp + 0x20], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea esi, [ebp + 0x11f8]
lea ecx, [esp + 0x20]
mov dword [esp + 0x6488], 8
call fcn.00411000
lea esi, [ebp + 0x11ec]
lea ecx, [esp + 0x28]
call fcn.00425640
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x422d8c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x6480]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6478
ret 0x10