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

Disassembly:
push 0xffffffffffffffff
push 0x4a6d43
mov eax, dword fs:[0]
push eax
sub esp, 0x84
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4de980]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x20], edi
cmp dword [esp + 0xbc], 0
jne 0x458a6f
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x28], 1
je 0x458a77
mov dword [esp + 0x28], 0
mov eax, dword [edi + 0x98]
mov ebx, dword [esp + 0xa8]
add eax, 0x30
push eax
push ebx
lea ecx, [esp + 0x70]
call fcn.00449630
push 0xfffffffffffffffc
push 0xfffffffffffffffa
lea ecx, [esp + 0xb4]
xor esi, esi
push ecx
mov dword [esp + 0xac], esi
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [edi + 0x94]
mov ecx, dword [edx + 0x140]
call fcn.0043bea0
mov ecx, dword [esp + 0xac]
mov edx, dword [ebx + 8]
mov ebp, eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xb4]
sub eax, ecx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x3c]
push ecx
push 3
push 0x4b6e54
push edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x74], eax
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [esp + 0x24], esi
test ebp, ebp
jle 0x459141
lea esp, [esp]
mov eax, dword [edi + 0x94]
mov eax, dword [eax + 0x140]
test esi, esi
jl 0x45924a
cmp esi, dword [eax + 0x28]
jge 0x45924a
mov ecx, dword [eax + 0x24]
lea eax, [ecx + esi*4]
mov eax, dword [eax]
lea edx, [esp + 0x18]
push edx
mov ecx, eax
mov dword [esp + 0x34], eax
call fcn.00457af0
mov eax, dword [esp + 0x18]
cmp dword [eax - 0xc], 0
mov byte [esp + 0xa0], 1
je 0x459042
jmp 0x458b60
mov ebp, dword [esp + 0x18]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x88]
push ecx
push eax
push ebp
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
lea edx, [ecx + esi]
cmp edx, eax
jl 0x458ee4
mov edi, dword [ebp - 0xc]
sub eax, esi
lea edx, [edi - 1]
imul eax, edx
cdq
idiv ecx
cmp eax, 1
mov ecx, eax
jge 0x458bb7
cmp esi, dword [esp + 0xac]
je 0x459037
test eax, eax
jl 0x458c09
jmp 0x458bc0
test ecx, ecx
jl 0x4591b2
cmp ecx, edi
jg 0x4591b2
movzx edx, word [ebp + ecx*2]
movzx esi, dx
cmp si, 0x20
je 0x458c05
cmp ecx, edi
jg 0x4591b2
movzx esi, dx
cmp si, 0x2c
je 0x458c05
cmp ecx, edi
jg 0x4591b2
movzx edx, dx
cmp dx, 0x2d
je 0x458c05
sub ecx, 1
jns 0x458bc0
mov esi, dword [esp + 0x1c]
test ecx, ecx
jg 0x458c2b
mov ecx, dword [esp + 0xac]
cmp esi, ecx
je 0x458c29
mov eax, dword [esp + 0x40]
add dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
jmp 0x458eb8
mov ecx, eax
lea esi, [ecx + 1]
push esi
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x20]
call fcn.0041a11f
push esi
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0xa8], 2
call fcn.0041a15f
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebx + 8]
lea ecx, [esp + 0x90]
push ecx
push eax
push ebp
push edx
mov byte [esp + 0xb0], 3
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
lea edx, [eax + ecx]
mov eax, dword [esp + 0xb8]
cmp edx, eax
mov dword [esp + 0x14], edx
mov esi, edx
jl 0x458c95
mov esi, eax
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0xb4]
add edx, eax
cmp edx, edi
jl 0x458caf
mov edx, edi
cmp dword [esp + 0x28], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], esi
je 0x458d85
mov edi, dword [esp + 0x30]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], edx
mov dword [edi + 0x38], esi
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x98]
mov ecx, dword [eax + 0x98]
add eax, 0x90
cmp ecx, 0xffffffff
jne 0x458cf9
mov eax, dword [eax + 4]
jmp 0x458cfb
mov eax, ecx
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebx
call eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebx]
mov edx, dword [edx + 0x68]
push 0x820
lea ecx, [esp + 0x48]
push ecx
push eax
push ebp
mov ecx, ebx
call edx
mov eax, dword [edi + 0x44]
mov eax, dword [eax + 0x34]
mov ecx, dword [edi + 0x28]
cmp ecx, dword [eax + 0x150]
jne 0x458da8
test eax, eax
jne 0x458d36
xor edi, edi
jmp 0x458d39
mov edi, dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, edi
jne 0x458da8
mov eax, dword [esi + 0x98]
mov ecx, dword [eax + 0x44]
add eax, 0x3c
cmp ecx, 0xffffffff
jne 0x458d59
mov eax, dword [eax + 4]
jmp 0x458d5b
mov eax, ecx
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x2c]
push 0
mov ecx, ebx
call eax
mov edx, dword [ebx + 4]
inc dword [esp + 0x50]
lea ecx, [esp + 0x44]
push ecx
push edx
call dword [sym.imp.USER32.dll_DrawFocusRect]
jmp 0x458da8
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xbc]
push eax
push ecx
lea edx, [esp + 0x4c]
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4591bc
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
lea esi, [eax - 0x10]
add ebp, 0xfffffff0
mov dword [esp + 0x14], ecx
cmp esi, ebp
je 0x458e6f
cmp dword [ebp + 0xc], 0
jl 0x458e61
mov ecx, dword [esi]
cmp ecx, dword [ebp]
jne 0x458e61
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x458e03
cmp eax, dword [esi]
jne 0x458e03
mov edi, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x458e3e
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x459214
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax + 2]
push ecx
lea edx, [esi + 0x10]
push edx
lea eax, [eax + eax + 2]
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00424eda
add esp, 0x10
lea eax, [ebp + 0xc]
or edx, 0xffffffff
lock xadd dword [eax], edx
dec edx
test edx, edx
jg 0x458e58
mov ecx, dword [ebp]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebp
call edx
add edi, 0x10
mov dword [esp + 0x18], edi
jmp 0x458e6f
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x20]
call fcn.004016cc
mov byte [esp + 0xa0], 2
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x458e90
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0xa0], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x458eb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0xb8]
jge 0x459219
mov edx, dword [esp + 0x18]
cmp dword [edx - 0xc], 0
jne 0x458b60
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
jmp 0x45903e
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0xb8]
add eax, edx
cmp eax, edi
jge 0x458efb
mov edi, eax
mov edx, dword [esp + 0xb4]
add ecx, esi
cmp ecx, edx
mov dword [esp + 0x1c], ecx
jge 0x458f0e
mov edx, ecx
cmp dword [esp + 0x28], 0
mov ecx, dword [esp + 0x14]
mov eax, esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edi
je 0x458ffe
mov esi, dword [esp + 0x30]
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], edi
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x98]
mov ecx, dword [eax + 0x98]
add eax, 0x90
cmp ecx, 0xffffffff
jne 0x458f5e
mov eax, dword [eax + 4]
jmp 0x458f60
mov eax, ecx
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebx
call eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebx]
mov edx, dword [edx + 0x68]
push 0x820
lea ecx, [esp + 0x58]
push ecx
push eax
push ebp
mov ecx, ebx
call edx
mov eax, dword [esi + 0x44]
mov eax, dword [eax + 0x34]
mov ecx, dword [esi + 0x28]
cmp ecx, dword [eax + 0x150]
jne 0x459025
test eax, eax
jne 0x458f9f
xor esi, esi
jmp 0x458fa2
mov esi, dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, esi
jne 0x459025
mov eax, dword [edi + 0x98]
mov ecx, dword [eax + 0x44]
add eax, 0x3c
cmp ecx, 0xffffffff
jne 0x458fc2
mov eax, dword [eax + 4]
jmp 0x458fc4
mov eax, ecx
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebx
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x2c]
push 0
mov ecx, ebx
call eax
mov edx, dword [ebx + 4]
inc dword [esp + 0x60]
lea ecx, [esp + 0x54]
push ecx
push edx
call dword [sym.imp.USER32.dll_DrawFocusRect]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x459042
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xbc]
push eax
push ecx
lea edx, [esp + 0x5c]
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x459174
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
jmp 0x459042
mov ebp, dword [esp + 0x2c]
lea esi, [ebp - 1]
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xb8]
cmp dword [esp + 0x14], ecx
jge 0x459219
lea edx, [ebp - 1]
cmp esi, edx
je 0x459219
cmp dword [esp + 0x28], 0
je 0x459107
mov eax, dword [edi + 0x98]
add eax, 0x20
push eax
lea ecx, [esp + 0x6c]
call fcn.00448eb0
mov eax, dword [edi + 0x98]
mov ecx, dword [eax + 0x50]
add eax, 0x48
cmp ecx, 0xffffffff
jne 0x459092
mov eax, dword [eax + 4]
jmp 0x459094
mov eax, ecx
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x30]
mov ecx, ebx
call eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0xb8]
cmp eax, ecx
jl 0x4590b6
mov eax, ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x78], ecx
add ecx, 8
mov dword [esp + 0x80], ecx
push 0x820
lea ecx, [esp + 0x7c]
push ecx
mov dword [esp + 0x8c], eax
mov eax, dword [ebx]
push 1
mov dword [esp + 0x88], edx
mov edx, dword [eax + 0x68]
push 0x4b6e50
mov ecx, ebx
call edx
mov eax, dword [edi + 0x98]
add eax, 0x30
push eax
lea ecx, [esp + 0x6c]
call fcn.00448eb0
mov eax, dword [esp + 0x18]
add dword [esp + 0x1c], 8
add eax, 0xfffffff0
mov byte [esp + 0xa0], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459134
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
inc esi
cmp esi, ebp
mov dword [esp + 0x24], esi
jl 0x458b10
lea ecx, [esp + 0x68]
mov dword [esp + 0xa0], 0xffffffff
call fcn.00449670
or eax, 0xffffffff
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret 0x1c
lea eax, [ebp - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0xa0], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459198
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x68]
mov dword [esp + 0xa0], 0xffffffff
call fcn.00449670
mov eax, dword [esp + 0x24]
jmp 0x459158
push 0x80070057
call fcn.0040168b
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0xa0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4591e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0xa0], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459208
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
jmp 0x459177
call fcn.00401598
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0xa0], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x459141
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x459141
call fcn.0040e092
int3