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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf4
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x48], esi
call fcn.00425f10
fstp qword [esp + 0x80]
call fcn.00425f10
fst qword [esi + 0x188]
sub esp, 8
lea eax, [esp + 0x98]
fstp qword [esp]
call fcn.00442be0
mov ecx, dword [esi + 0x14c]
xor edi, edi
cmp ecx, edi
lea eax, [esp + 0x4c]
mov dword [esp + 0x54], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0xb0], eax
mov dword [esp + 0x50], ecx
je 0x445608
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x150]
cmp ecx, edi
je 0x44562b
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.00456bf0
cmp eax, 0xf4240
je 0x445634
cmp byte [esi + 0x244], 0
je 0x44565d
fldz
or ecx, 0xffffffff
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
or edx, ecx
mov dword [eax + 4], edx
or edi, ecx
push ecx
or ebx, ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], ebx
fstp dword [esp]
push 1
push esi
call fcn.00446010
xor edi, edi
mov dword [esp + 0x40], edi
lea ebx, [esi + 0x1a4]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x445680
cmp eax, edi
jne 0x445680
add dword [ebx + 0x24], 1
jmp 0x4456a5
cmp byte [ebx + 0xc], 0
je 0x445692
lea ecx, [ebx + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x44569b
mov edx, dword [ebx]
mov eax, dword [edx + 0x18]
mov ecx, ebx
call eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], edi
test dword [esi + 0x1f0], 0xfffffffe
je 0x445a40
mov ecx, esi
mov esi, dword [ecx + 0x1ec]
cmp dword [esi], 0
je 0x4456fc
lea edi, [esp + 0x40]
call fcn.00401070
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x40], eax
je 0x4456fc
movzx edx, byte [eax]
cmp edx, 0x80
jae 0x4456f3
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x4456fc
lea eax, [esp + 0x40]
call fcn.00449d40
mov eax, dword [ebx + 0x4c]
test al, 1
jne 0x445a40
shr eax, 1
je 0x445a40
xor esi, esi
add eax, 0xffffffff
je 0x445767
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + esi*4]
cmp ecx, dword [eax + esi*4 + 4]
lea edi, [eax + esi*4]
je 0x445758
call fcn.00401070
mov eax, dword [edi + 4]
test eax, eax
mov dword [edi], eax
je 0x445758
movzx edx, byte [eax]
cmp edx, 0x80
jae 0x445751
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445758
mov eax, edi
call fcn.00449d40
mov eax, dword [ebx + 0x4c]
shr eax, 1
add esi, 1
sub eax, 1
cmp esi, eax
jb 0x445716
mov ecx, dword [ebx + 0x4c]
mov eax, ecx
shr eax, 1
lea edi, [eax - 1]
cmp edi, 0x1fffffff
mov dword [esp + 0x44], edi
jbe 0x445799
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x445789
call fcn.00407d60
and dword [ebx + 0x4c], 1
mov dword [ebx + 0x48], 0
jmp 0x445a40
and ecx, 1
cmp edi, eax
je 0x445a40
test ecx, ecx
je 0x4458ae
xor esi, esi
test edi, edi
je 0x445884
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0044ce70
add esp, 4
test eax, eax
je 0x44577d
lea esi, [eax + 4]
push 0x4010d0
mov dword [eax], edi
push 4
mov eax, edi
mov ecx, esi
call fcn.00407e00
test esi, esi
mov dword [esp + 0x34], esi
je 0x44577d
mov eax, dword [ebx + 0x4c]
shr eax, 1
cmp eax, edi
jbe 0x445813
mov eax, edi
mov dword [esp + 0x3c], edi
jmp 0x445817
mov dword [esp + 0x3c], eax
test eax, eax
mov dword [esp + 0x38], 0
jbe 0x445884
mov edi, esi
mov ecx, dword [ebx + 0x48]
mov edx, dword [esp + 0x38]
mov eax, dword [edi]
cmp eax, dword [ecx + edx*4]
lea esi, [ecx + edx*4]
je 0x445868
call fcn.00401070
mov eax, dword [esi]
test eax, eax
mov dword [edi], eax
je 0x445868
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x445861
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445868
mov eax, edi
call fcn.00449d40
mov eax, dword [esp + 0x38]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
jb 0x445825
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x445890
call fcn.00407d60
test esi, esi
mov dword [ebx + 0x48], esi
je 0x44577d
mov eax, dword [ebx + 0x4c]
lea edx, [edi + edi]
and eax, 1
or edx, eax
mov dword [ebx + 0x4c], edx
jmp 0x445a40
lea ecx, [edi*4]
cmp ecx, 0x100000
jae 0x4458d0
mov esi, 1
mov ecx, edi
cmp ecx, esi
jb 0x4458de
add esi, esi
cmp esi, ecx
jbe 0x4458c8
jmp 0x4458de
mov esi, edi
and esi, 0xfffffc00
add esi, 0x400
lea edx, [eax*4]
cmp edx, 0x100000
jae 0x44592b
cmp eax, 1
jbe 0x445925
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
jge 0x445906
fadd dword [0x567d50]
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
shr ecx, 0x17
sub ecx, 0x7f
mov edx, 1
shl edx, cl
cmp edx, eax
jae 0x445927
add edx, edx
mov eax, edx
jmp 0x445935
mov edx, eax
mov eax, edx
jmp 0x445935
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, esi
je 0x445a2e
test esi, esi
mov dword [esp + 0x3c], 0
je 0x445a13
xor ecx, ecx
mov eax, esi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0044ce70
add esp, 4
test eax, eax
je 0x44577d
lea edi, [eax + 4]
push 0x4010d0
mov dword [eax], esi
push 4
mov eax, esi
mov ecx, edi
call fcn.00407e00
test edi, edi
mov dword [esp + 0x3c], edi
je 0x44577d
mov eax, dword [ebx + 0x4c]
shr eax, 1
cmp eax, esi
mov dword [esp + 0x38], esi
ja 0x4459ae
mov dword [esp + 0x38], eax
xor eax, eax
cmp dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
jbe 0x445a13
mov edi, dword [esp + 0x3c]
mov edi, edi
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi]
cmp edx, dword [ecx + eax*4]
lea esi, [ecx + eax*4]
je 0x4459ff
call fcn.00401070
mov eax, dword [esi]
test eax, eax
mov dword [edi], eax
je 0x4459ff
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x4459f8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x4459ff
mov eax, edi
call fcn.00449d40
mov eax, dword [esp + 0x34]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
jb 0x4459c0
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x445a1f
call fcn.00407d60
mov eax, dword [esp + 0x3c]
test eax, eax
mov dword [ebx + 0x48], eax
je 0x44577d
mov ecx, dword [ebx + 0x4c]
mov edx, dword [esp + 0x44]
lea eax, [edx + edx]
and ecx, 1
or eax, ecx
mov dword [ebx + 0x4c], eax
cmp dword [ebx + 0x24], 0
je 0x445a5d
cmp dword [ebx + 0x20], 0
je 0x445a5d
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebx + 0x20], eax
jne 0x445a5d
add dword [ebx + 0x24], 0xffffffff
jmp 0x445a7f
cmp byte [ebx + 0xc], 0
mov dword [ebx + 0x20], 0
je 0x445a76
add ebx, 0x28
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x445a7f
mov edx, dword [ebx]
mov eax, dword [edx + 0x1c]
mov ecx, ebx
call eax
mov esi, dword [esp + 0x40]
xor ebx, ebx
cmp esi, ebx
je 0x445af0
test dword [esi], 0xffffff00
je 0x445af0
cmp byte [esi + 4], bl
je 0x445af0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov byte [esp + 0x68], bl
mov dword [esp + 0x6c], esi
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x445ac0
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov edx, dword [edx + 0x58]
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0x8000002
mov dword [esp + 0x80], ebx
call edx
lea edi, [esp + 0x6c]
call fcn.00401070
cmp esi, ebx
mov dword [esp + 0x34], ebx
je 0x445b05
lea edi, [esp + 0x40]
call fcn.00401070
mov dword [esp + 0x40], ebx
lea edi, [esp + 0x34]
call fcn.00401070
mov ebx, dword [esp + 0x48]
lea esi, [ebx + 0x1f4]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edi, eax
mov eax, dword [esi + 0x20]
test eax, eax
je 0x445b31
cmp eax, edi
jne 0x445b31
add dword [esi + 0x24], 1
jmp 0x445b56
cmp byte [esi + 0xc], 0
je 0x445b43
lea eax, [esi + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x445b4c
mov edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, esi
call eax
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], edi
test dword [ebx + 0x240], 0xfffffffe
je 0x445ef9
mov ebx, dword [ebx + 0x23c]
mov ecx, dword [esp + 0x40]
cmp ecx, dword [ebx]
je 0x445bae
lea edi, [esp + 0x40]
call fcn.00401070
mov eax, dword [ebx]
test eax, eax
mov dword [esp + 0x40], eax
je 0x445bae
movzx edx, byte [eax]
cmp edx, 0x80
jae 0x445ba5
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445bae
lea eax, [esp + 0x40]
call fcn.00449d40
mov eax, dword [esi + 0x4c]
test al, 1
jne 0x445ef9
shr eax, 1
je 0x445ef9
xor ebx, ebx
add eax, 0xffffffff
je 0x445c21
jmp 0x445bd0
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + ebx*4]
cmp ecx, dword [eax + ebx*4 + 4]
lea edi, [eax + ebx*4]
je 0x445c12
call fcn.00401070
mov eax, dword [edi + 4]
test eax, eax
mov dword [edi], eax
je 0x445c12
movzx edx, byte [eax]
cmp edx, 0x80
jae 0x445c0b
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445c12
mov eax, edi
call fcn.00449d40
mov eax, dword [esi + 0x4c]
shr eax, 1
add ebx, 1
sub eax, 1
cmp ebx, eax
jb 0x445bd0
mov edx, dword [esi + 0x4c]
mov eax, edx
shr eax, 1
lea ecx, [eax - 1]
cmp ecx, 0x1fffffff
mov dword [esp + 0x44], ecx
jbe 0x445c53
mov eax, dword [esi + 0x48]
test eax, eax
je 0x445c43
call fcn.00407d60
and dword [esi + 0x4c], 1
mov dword [esi + 0x48], 0
jmp 0x445ef9
and edx, 1
cmp ecx, eax
je 0x445ef9
test edx, edx
je 0x445d4f
test ecx, ecx
mov dword [esp + 0x38], 0
je 0x445eb7
mov ebx, dword [esp + 0x44]
xor ecx, ecx
mov eax, ebx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0044ce70
add esp, 4
test eax, eax
je 0x445ece
lea edi, [eax + 4]
push 0x4010d0
mov dword [eax], ebx
push 4
mov eax, ebx
mov ecx, edi
call fcn.00407e00
test edi, edi
mov dword [esp + 0x38], edi
je 0x445ece
mov eax, dword [esi + 0x4c]
shr eax, 1
cmp eax, ebx
jbe 0x445cd9
mov dword [esp + 0x34], ebx
jmp 0x445cdf
mov ebx, eax
mov dword [esp + 0x34], eax
test ebx, ebx
mov dword [esp + 0x3c], 0
jbe 0x445eb7
mov edi, dword [esp + 0x38]
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x3c]
mov eax, dword [edi]
cmp eax, dword [ecx + edx*4]
lea ebx, [ecx + edx*4]
je 0x445d36
call fcn.00401070
mov eax, dword [ebx]
test eax, eax
mov dword [edi], eax
je 0x445d36
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x445d2f
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445d36
mov eax, edi
call fcn.00449d40
mov eax, dword [esp + 0x3c]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
jb 0x445cf3
jmp 0x445eb7
lea edx, [ecx*4]
cmp edx, 0x100000
jae 0x445d6f
mov edi, 1
cmp ecx, edi
jb 0x445d7d
add edi, edi
cmp edi, ecx
jbe 0x445d67
jmp 0x445d7d
mov edi, ecx
and edi, 0xfffffc00
add edi, 0x400
lea ecx, [eax*4]
cmp ecx, 0x100000
jae 0x445dc4
cmp eax, 1
mov edx, eax
jbe 0x445dc0
test edx, edx
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
jge 0x445da5
fadd dword [0x567d50]
fstp dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
shr ecx, 0x17
sub ecx, 0x7f
mov edx, 1
shl edx, cl
cmp edx, eax
jae 0x445dc0
add edx, edx
mov eax, edx
jmp 0x445dce
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edi
je 0x445ee7
test edi, edi
mov dword [esp + 0x38], 0
je 0x445eb7
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call fcn.0044ce70
add esp, 4
test eax, eax
je 0x445ece
lea ebx, [eax + 4]
push 0x4010d0
mov dword [eax], edi
push 4
mov eax, edi
mov ecx, ebx
call fcn.00407e00
test ebx, ebx
mov dword [esp + 0x38], ebx
je 0x445ece
mov eax, dword [esi + 0x4c]
shr eax, 1
cmp eax, edi
jbe 0x445e45
mov dword [esp + 0x34], edi
jmp 0x445e4b
mov edi, eax
mov dword [esp + 0x34], eax
test edi, edi
mov dword [esp + 0x3c], 0
jbe 0x445eb7
mov edi, dword [esp + 0x38]
jmp 0x445e60
mov ecx, dword [esi + 0x48]
mov edx, dword [esp + 0x3c]
mov eax, dword [edi]
cmp eax, dword [ecx + edx*4]
lea ebx, [ecx + edx*4]
je 0x445ea3
call fcn.00401070
mov eax, dword [ebx]
test eax, eax
mov dword [edi], eax
je 0x445ea3
movzx ecx, byte [eax]
cmp ecx, 0x80
jae 0x445e9c
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x445ea3
mov eax, edi
call fcn.00449d40
mov eax, dword [esp + 0x3c]
add eax, 1
add edi, 4
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
jb 0x445e60
mov eax, dword [esi + 0x48]
test eax, eax
je 0x445ec3
call fcn.00407d60
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esi + 0x48], eax
jne 0x445ee7
mov eax, dword [esi + 0x48]
test eax, eax
je 0x445eda
call fcn.00407d60
and dword [esi + 0x4c], 1
mov dword [esi + 0x48], 0
jmp 0x445ef9
mov edx, dword [esi + 0x4c]
mov eax, dword [esp + 0x44]
lea ecx, [eax + eax]
and edx, 1
or edx, ecx
mov dword [esi + 0x4c], edx
xor ebx, ebx
cmp dword [esi + 0x24], ebx
je 0x445f16
cmp dword [esi + 0x20], ebx
je 0x445f16
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esi + 0x20], eax
jne 0x445f16
add dword [esi + 0x24], 0xffffffff
jmp 0x445f34
cmp byte [esi + 0xc], 0
mov dword [esi + 0x20], ebx
je 0x445f2b
add esi, 0x28
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x445f34
mov edx, dword [esi]
mov eax, dword [edx + 0x1c]
mov ecx, esi
call eax
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x445f82
test dword [eax], 0xffffff00
je 0x445f82
cmp byte [eax + 4], 0
lea edx, [eax + 4]
je 0x445f82
cmp dword [0x59b534], ebx
je 0x445f5c
call fcn.0042ef00
jmp 0x445f5e
xor eax, eax
push ebx
push 0x5789c4
push 0x578908
push ebx
push eax
call fcn.00511c29
add esp, 0x14
cmp eax, ebx
je 0x445f82
mov edx, dword [eax]
push ebx
mov ecx, eax
mov eax, dword [edx + 0x78]
push ebx
call eax
mov esi, dword [esp + 0x48]
cmp byte [esi + 0x174], 0
je 0x445fa2
mov edx, dword [esi]
mov eax, dword [edx + 0x84]
mov ecx, esi
mov byte [esi + 0x174], 0
call eax
lea edi, [esp + 0x40]
call fcn.00401070
mov ecx, dword [esp + 0x50]
cmp ecx, ebx
je 0x445fba
mov edx, dword [ecx]
mov eax, dword [edx + 8]
call eax
lea edi, [esp + 0xf8]
mov dword [esp + 0x90], vtable.ytUIEvent.0
call fcn.00401070
mov dword [esp + 0xf8], ebx
call fcn.00425f10
fsub qword [esp + 0x80]
add dword [esi + 0xa8], 1
pop edi
fadd qword [esi + 0xa0]
mov eax, 0xa
fstp qword [esi + 0xa0]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8