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

Disassembly:
sub esp, 0xd4
mov eax, dword [esp + 0xdc]
push ebx
push ebp
push esi
push edi
xor edi, edi
mov dword [esp + 0x10], 1
mov dword [esp + 0x68], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x24], edi
cmp eax, edi
je 0x42195e
cmp dword [eax + 8], edi
jne 0x42195e
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
jmp 0x421993
push edi
call fcn.00483d72
fldz
mov dword [esp + 0x18], eax
fstp qword [esp + 0x2c]
add esp, 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edi
call fcn.00405e20
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
cmp eax, edi
je 0x4219b9
cmp dword [eax + 8], edi
jne 0x4219b9
mov ebx, dword [eax]
mov ebp, dword [eax + 4]
mov edi, dword [eax + 8]
jmp 0x421a01
push 0
call fcn.00483d72
fldz
mov dword [esp + 0x18], eax
fstp qword [esp + 0x94]
add esp, 4
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x9c], edi
call fcn.00405e20
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
call fcn.00411a50
test al, al
je 0x421a45
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, esi
mov esi, edi
mov edi, edx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edi
mov ebx, dword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
xor ebp, ebp
cmp esi, ebp
jne 0x421a6d
fld qword [esp + 0x34]
lea edx, [esp + 0x48]
push edx
sub esp, 8
fstp qword [esp]
call ebx
test eax, eax
je 0x421a6d
movzx esi, word [esp + 0x48]
jmp 0x421a70
or esi, 0xffffffff
cmp edi, ebp
jne 0x421a90
fld qword [esp + 0x28]
lea eax, [esp + 0x48]
push eax
sub esp, 8
fstp qword [esp]
call ebx
test eax, eax
je 0x421a90
movzx edi, word [esp + 0x48]
jmp 0x421a93
or edi, 0xffffffff
fldz
mov dword [esp + 0x40], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], ebp
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], ebp
cmp esi, edi
jne 0x421c8c
lea ecx, [esp + 0x70]
fst qword [esp + 0x74]
mov eax, 1
fstp qword [esp + 0x80]
push ecx
push esi
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x84], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ebp
call fcn.00420bc0
add esp, 8
test eax, eax
je 0x421c83
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x78]
call fcn.0041e950
mov esi, dword [esp + 0x8c]
mov edi, eax
lea ecx, [esp + 0x1c]
neg edi
push ecx
lea edx, [esp + 0x2c]
sbb edi, edi
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0x1c], eax
and edi, esi
call fcn.0041e950
mov ebx, eax
neg ebx
sbb ebx, ebx
and ebx, esi
cmp dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x20], eax
je 0x421b8f
cmp dword [esp + 0x1c], 0xffffffff
jne 0x421b93
mov dword [esp + 0x10], ebp
cmp esi, ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
jge 0x421bbe
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
lea eax, [esp + 0x78]
push eax
jmp 0x421bd0
jle 0x421bd9
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
lea ecx, [esp + 0x84]
push ecx
lea ecx, [esp + 0x50]
call fcn.0041d750
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0x4c]
call fcn.0041d7e0
cmp eax, 0xffffffff
jne 0x421c37
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], edx
jmp 0x421e43
cmp eax, 1
jne 0x421bf0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], edx
jmp 0x421e43
mov dword [esp + 0x10], ebp
jmp 0x421fa8
lea eax, [esp + 0x48]
fst qword [esp + 0x4c]
push eax
fstp qword [esp + 0x5c]
mov ebx, 1
push esi
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
call fcn.00420bc0
add esp, 8
test eax, eax
je 0x421c83
fldz
lea ecx, [esp + 0x70]
push ecx
fst qword [esp + 0x78]
push edi
fstp qword [esp + 0x88]
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x84], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebp
call fcn.00420bc0
add esp, 8
test eax, eax
je 0x421c83
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x50]
call fcn.0041e950
mov esi, dword [esp + 0x64]
mov edi, eax
lea ecx, [esp + 0x1c]
neg edi
push ecx
lea edx, [esp + 0x2c]
sbb edi, edi
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0x1c], eax
and edi, esi
call fcn.0041e950
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x8c]
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x60]
neg ebx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0xd4], edx
mov edx, dword [esp + 0x7c]
sbb ebx, ebx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0x88]
and ebx, ebp
cmp dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
je 0x421dd6
cmp dword [esp + 0x1c], 0xffffffff
jne 0x421dde
mov dword [esp + 0x10], 0
test esi, esi
jge 0x421df4
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
lea eax, [esp + 0x94]
push eax
jmp 0x421e06
jle 0x421e12
mov eax, esi
cdq
xor eax, edx
sub eax, edx
push eax
lea ecx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0xbc]
call fcn.0041d750
test ebp, ebp
jge 0x421e28
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
push eax
lea edx, [esp + 0xdc]
push edx
jmp 0x421e37
jle 0x421e43
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xa4]
call fcn.0041d750
or eax, 0xffffffff
cmp dword [esp + 0x40], eax
je 0x421fa0
cmp dword [esp + 0x1c], eax
je 0x421fa0
lea ecx, [esp + 0x34]
push ecx
lea ecx, [esp + 0xb8]
call fcn.0041d7e0
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0xb8]
mov ebp, eax
call fcn.0041d7e0
mov esi, eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xa0]
call fcn.0041d7e0
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x20], eax
call fcn.0041d7e0
cmp ebp, 0xffffffff
je 0x421ebc
cmp dword [esp + 0x1c], 0xffffffff
je 0x421ebc
cmp esi, 0xffffffff
je 0x421ebc
cmp eax, 0xffffffff
jne 0x421ec4
mov dword [esp + 0x10], 0
mov edx, 1
cmp ebp, edx
je 0x421ed5
cmp esi, edx
je 0x421ed5
xor esi, esi
jmp 0x421ed7
mov esi, edx
cmp dword [esp + 0x1c], edx
je 0x421ee5
cmp eax, edx
je 0x421ee5
xor ecx, ecx
jmp 0x421ee7
mov ecx, edx
test esi, esi
jne 0x421eef
test ecx, ecx
je 0x421ef7
mov ebp, edx
mov dword [esp + 0x6c], ebp
jmp 0x421efb
mov ebp, dword [esp + 0x6c]
xor eax, eax
test esi, esi
je 0x421f03
mov eax, edx
xor esi, esi
cmp ecx, esi
je 0x421f0c
or eax, 2
cmp edi, ebx
jne 0x421f18
cmp ebp, esi
je 0x421fa8
cmp dword [esp + 0x14], esi
jne 0x42204d
cmp dword [esp + 0x20], esi
je 0x422179
mov ebp, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], edx
cmp edi, esi
jne 0x421f3e
cmp ebx, esi
jne 0x421f42
mov dword [esp + 0x10], esi
sub eax, 1
mov esi, ebx
je 0x421ffa
sub eax, 1
je 0x421f9c
sub eax, 1
jne 0x422034
xor esi, esi
cmp ebx, esi
jl 0x421f65
mov dword [esp + 0x10], esi
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0xb8]
call fcn.0041b220
cmp dword [esp + 0x14], esi
je 0x421f87
cmp edx, esi
ja 0x421f87
cmp eax, 0x7fffffff
jbe 0x421f8b
mov dword [esp + 0x10], esi
push esi
push 0x3c
push edx
push eax
call fcn.00484a90
mov esi, eax
jmp 0x422034
test ebx, ebx
jl 0x421fa8
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0xf0]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x421fbc
mov ecx, dword [esp]
mov dword [eax], ecx
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x421fcd
mov edx, dword [esp + 0x34]
mov dword [eax], edx
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x421fde
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
mov eax, dword [esp + 0xec]
test eax, eax
je 0x421fef
mov edx, dword [esp + 0x5c]
mov dword [eax], edx
mov eax, dword [esp + 0x58]
add esp, 0xd4
ret
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
call fcn.0041b220
cmp dword [esp + 0x14], 0
je 0x42201d
test edx, edx
ja 0x42201d
cmp eax, 0x7fffffff
jbe 0x422025
mov dword [esp + 0x10], 0
push 0
push 0x3c
push edx
push eax
call fcn.00484a90
sub ebx, eax
mov esi, ebx
test esi, esi
je 0x421fa8
test ebp, ebp
je 0x4222b6
mov dword [esp + 0x68], esi
jmp 0x421fa8
mov dword [esp + 0x44], edx
cmp dword [esp + 0x20], esi
jne 0x42210d
xor ebp, ebp
mov dword [esp + 0x24], 2
cmp edi, esi
je 0x42206d
cmp ebx, esi
je 0x422071
mov dword [esp + 0x10], esi
sub eax, 1
mov esi, edi
je 0x422106
sub eax, 1
je 0x4220c7
sub eax, 1
jne 0x422034
xor esi, esi
cmp edi, esi
jl 0x422090
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0xa0]
call fcn.0041b220
cmp dword [esp + 0x14], esi
je 0x4220b2
cmp edx, esi
ja 0x4220b2
cmp eax, 0x7fffffff
jbe 0x4220b6
mov dword [esp + 0x10], esi
push esi
push 0x3c
push edx
push eax
call fcn.00484a90
mov esi, eax
jmp 0x422034
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0xa0]
call fcn.0041b220
cmp dword [esp + 0x14], 0
je 0x4220ea
test edx, edx
ja 0x4220ea
cmp eax, 0x7fffffff
jbe 0x4220f2
mov dword [esp + 0x10], 0
push 0
push 0x3c
push edx
push eax
call fcn.00484a90
sub edi, eax
mov esi, edi
jmp 0x422034
test edi, edi
jmp 0x421f9e
mov dword [esp + 0x24], 3
cmp edi, esi
je 0x42211d
cmp ebx, esi
jne 0x422121
mov dword [esp + 0x10], esi
mov esi, ebx
sub esi, edi
sub eax, 1
mov ebp, edx
je 0x422164
sub eax, 1
je 0x422153
sub eax, 1
jne 0x422034
cmp edi, eax
jl 0x422142
mov dword [esp + 0x10], eax
cmp ebx, eax
jl 0x421fa8
mov dword [esp + 0x10], eax
jmp 0x421fa8
xor ebp, ebp
cmp ebx, ebp
jl 0x42215d
mov dword [esp + 0x10], ebp
mov esi, edi
jmp 0x422034
test edi, edi
jl 0x422032
mov dword [esp + 0x10], 0
jmp 0x422032
cmp ebp, esi
je 0x4221a1
mov dword [esp + 0x44], edx
cmp edi, esi
jne 0x422189
cmp ebx, esi
je 0x42218d
mov dword [esp + 0x10], esi
sub eax, edx
je 0x42226f
sub eax, edx
je 0x422229
sub eax, edx
je 0x4221aa
mov dword [esp + 0x10], esi
jmp 0x421fa8
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0xb8]
call fcn.0041b220
xor esi, esi
mov edi, eax
mov ebx, edx
cmp dword [esp + 0x20], esi
je 0x4221d3
cmp ebx, esi
ja 0x4221d3
cmp edi, 0x7fffffff
jbe 0x4221d7
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0xa0]
call fcn.0041b220
cmp dword [esp + 0x20], esi
je 0x4221f9
cmp edx, esi
ja 0x4221f9
cmp eax, 0x7fffffff
jbe 0x4221fd
mov dword [esp + 0x10], esi
push 0
push 0x3c
push edx
push eax
call fcn.00484a90
push 0
push 0x3c
push ebx
push edi
mov esi, eax
call fcn.00484a90
sub esi, eax
mov dword [esp + 0x24], 3
mov ebp, 1
jmp 0x422034
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0xa0]
call fcn.0041b220
cmp dword [esp + 0x14], 0
je 0x42224c
test edx, edx
ja 0x42224c
cmp eax, 0x7fffffff
jbe 0x422254
mov dword [esp + 0x10], 0
push 0
push 0x3c
push edx
push eax
call fcn.00484a90
mov ebp, 1
mov esi, eax
mov dword [esp + 0x24], ebp
jmp 0x422034
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0xb8]
call fcn.0041b220
cmp dword [esp + 0x14], 0
je 0x422292
test edx, edx
ja 0x422292
cmp eax, 0x7fffffff
jbe 0x42229a
mov dword [esp + 0x10], 0
push 0
push 0x3c
push edx
push eax
call fcn.00484a90
mov esi, eax
mov dword [esp + 0x24], 2
xor ebp, ebp
jmp 0x422034
neg esi
mov dword [esp + 0x68], esi
jmp 0x421fa8