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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x9d8
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
test eax, eax
je 0x422935
mov dword [esp], ecx
lea esi, [esp + 0x524]
mov ecx, esi
push dword [ebp + 8]
call fcn.004708d0
add esp, 4
cmp dword [esi], 2
jne 0x42293d
mov eax, dword [esp + 0x528]
mov ecx, dword [esp + 0x52c]
mov dword [esp + 0x2d0], ecx
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2c8], 2
jmp 0x422958
mov dword [ecx], 0x80000000
jmp 0x42296d
lea edi, [esp + 0x2c8]
push 0x25c
push esi
push edi
call fcn.0047eb10
add esp, 0xc
cmp dword [edi], 2
jne 0x422975
lea ecx, [esp + 0x2c8]
call fcn.00412f18
mov eax, dword [esp]
mov dword [eax], 0x80000000
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x25c
push edi
push esi
call fcn.0047eb10
add esp, 0xc
lea edi, [esp + 0x780]
mov ecx, edi
mov edx, esi
call fcn.00423292
cmp dword [edi], 0
je 0x422b3a
dec dword [esp + 0x14]
lea esi, [esp + 0x74]
push 0x254
push edi
push esi
call fcn.0047eb10
add esp, 0xc
mov edx, dword [esp + 0x78]
bt edx, 0xa
setae al
test byte [esp + 0x9f], 0x20
sete cl
test dl, 0x10
jne 0x422a36
or al, cl
je 0x422a36
lea ecx, [esp + 4]
mov edx, esi
call fcn.00469b90
mov edx, dword [esp + 8]
lea ecx, [esp + 0x24]
push dword [esp + 0xc]
call fcn.0046d910
add esp, 4
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp eax, 0xc
jb 0x422a51
mov esi, edi
lea edi, [esp + 0x30]
mov ecx, edi
mov ebx, edx
push 0xb
push 0x4a5f66
push eax
call fcn.00409950
add esp, 0xc
lea ecx, [esp + 0x18]
mov edx, edi
mov edi, esi
lea esi, [esp + 0x74]
call fcn.00412f2f
cmp dword [esp + 0x18], 0
je 0x422a70
jmp 0x422bb2
mov eax, dword [esp + 0x74]
lock dec dword [eax]
jne 0x422afd
mov ecx, dword [esp + 0x74]
call fcn.00477828
jmp 0x422afd
mov ebx, edx
cmp eax, 0xb
jne 0x422a70
push 0xb
push ebx
push 0x4a5f66
call fcn.0047f1ea
add esp, 0xc
test eax, eax
je 0x422bb2
test dword [esp + 0x24], 0x7fffffff
je 0x422a89
push ebx
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 4], 0
je 0x422aa2
push dword [esp + 8]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x30]
mov edx, esi
call fcn.00469a30
mov esi, dword [esp + 0x34]
lea ecx, [esp + 4]
mov edx, esi
push dword [esp + 0x14]
push dword [esp + 0x3c]
call fcn.004228d6
add esp, 8
cmp dword [esp + 4], 0x80000000
jne 0x422b4b
cmp dword [esp + 0x30], 0
je 0x422ae7
push esi
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x74]
lock dec dword [eax]
jne 0x422af9
mov ecx, dword [esp + 0x74]
call fcn.00477828
lea esi, [esp + 0x74]
mov ecx, edi
lea edx, [esp + 0x524]
call fcn.00423292
cmp dword [esp + 0x780], 0
jne 0x4229a5
mov esi, dword [esp + 0x2c8]
lea ecx, [esp + 0x524]
call fcn.0041294c
cmp esi, 2
je 0x422958
jmp 0x422964
lea ecx, [esp + 0x524]
call fcn.0041294c
jmp 0x422964
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 4]
movsd qword [ecx], xmm0
cmp dword [esp + 0x30], 0
je 0x422b75
push esi
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [esp + 0x74]
lock dec dword [eax]
jne 0x422b87
mov ecx, dword [esp + 0x74]
call fcn.00477828
lea ecx, [esp + 0x524]
call fcn.0041294c
cmp dword [esp + 0x2c8], 2
jne 0x42296d
lea ecx, [esp + 0x2c8]
call fcn.00412f18
jmp 0x42296d
test dword [esp + 0x24], 0x7fffffff
je 0x422bcb
push ebx
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [esp + 4], 0
je 0x422be4
push dword [esp + 8]
push 0
push dword [0x4c0b18]
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea edi, [esp + 4]
lea edx, [esp + 0x74]
mov ecx, edi
call fcn.00469a30
mov esi, dword [edi + 4]
mov edx, dword [edi + 8]
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], 0x20
mov byte [esp + 0x50], 3
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x4a5874
mov ecx, esi
lea eax, [esp + 0x30]
push eax
call fcn.00464aa0
add esp, 4
test al, al
jne 0x422c6b
mov eax, dword [esp + 0x20]
mov ecx, dword [esp]
mov dword [ecx + 8], eax
movsd xmm0, qword [esp + 0x18]
movsd qword [ecx], xmm0
cmp dword [esp + 4], 0
jne 0x422b66
jmp 0x422b75
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly
mov edx, 0x37
push 0x4ad224
push 0x4a588c
lea eax, [esp + 0x2c]
push eax
call fcn.0048d6c0