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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5a782a
push eax
mov dword fs:[0], esp
sub esp, 0x9c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.00571129
push 0
push 0x6014b0
push 0x5fca08
push 0
push eax
call fcn.0053ce5e
add esp, 0x14
test esi, esi
je 0x508fa4
lea edx, [esi + 0x90]
jmp 0x508fa6
xor edx, edx
push 0
push edx
mov ecx, eax
call fcn.00486450
mov eax, dword [esi + 0x9c]
add eax, 0x34
mov cl, byte [eax + 1]
test cl, cl
je 0x509009
mov cl, byte [eax + 2]
test cl, cl
jne 0x509009
push 5
push 0x6e
mov ecx, esi
call fcn.005742aa
mov ecx, eax
call fcn.00574686
push 0
push 0x6f
mov ecx, esi
call fcn.005742aa
mov ecx, eax
call fcn.00574686
mov ecx, dword [esi + 0x9c]
mov dl, byte [ecx + 0x34]
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
and eax, 0xff
mov dword [esi + 0x94], eax
jmp 0x509037
push 0
push 0x6e
mov ecx, esi
call fcn.005742aa
mov ecx, eax
call fcn.00574686
push 5
push 0x6f
mov ecx, esi
call fcn.005742aa
mov ecx, eax
call fcn.00574686
mov dword [esi + 0x98], 2
lea ebp, [esi + 0xa0]
push esi
push 0x66
mov ecx, ebp
call fcn.0057418b
lea edi, [esi + 0x320]
push esi
push 0x67
mov ecx, edi
call fcn.0057418b
push edi
mov ecx, ebp
call fcn.004827f0
test ebp, ebp
jne 0x509067
xor eax, eax
jmp 0x50906a
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x33c]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call fcn.00571129
mov edx, dword [esi + 0x9c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x5090f7
mov edx, dword [eax + 0x20]
sub edx, ecx
test edx, 0xfffffffc
je 0x5090f7
test ecx, ecx
jne 0x5090ac
xor eax, eax
jmp 0x5090b4
mov eax, dword [eax + 0x20]
sub eax, ecx
sar eax, 2
cdq
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], 1
mov dword [ebp + 0x64], 0
test eax, eax
mov dword [ebp + 0x6c], edx
je 0x5090e3
mov ecx, dword [ebp + 0x68]
mov edx, dword [ebp + 0x60]
mov eax, dword [eax + 0x1c]
push ecx
push edx
push 0x46f
push eax
call edi
mov ecx, dword [esi + 0x9c]
push 0
mov eax, dword [ecx + 0x1c]
mov ecx, ebp
inc eax
push eax
call fcn.004dcd10
mov edx, dword [esi + 0x9c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x509113
mov eax, dword [eax + 0x20]
sub eax, ecx
and al, 0xfc
cmp eax, 8
jge 0x509123
mov eax, dword [edx + 0x1c]
test eax, eax
jne 0x509123
push 0
mov ecx, ebp
call fcn.005746c8
mov edx, dword [esi + 0x9c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x509151
mov eax, dword [eax + 0x20]
sub eax, ecx
test eax, 0xfffffffc
je 0x509151
mov al, byte [edx + 0x20]
test al, al
je 0x509151
mov al, byte [edx + 0x21]
test al, al
jne 0x509151
xor eax, eax
jmp 0x509156
mov eax, 1
lea ebp, [esi + 0x120]
push esi
push 0x69
mov ecx, ebp
mov byte [esi + 0xf8], al
call fcn.0057418b
lea ebx, [esi + 0x360]
push esi
push 0x6a
mov ecx, ebx
call fcn.0057418b
push ebx
mov ecx, ebp
call fcn.004827f0
test ebp, ebp
jne 0x50918c
xor eax, eax
jmp 0x50918f
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x37c]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call fcn.00571129
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x5c]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x54]
xor ecx, ecx
mov dword [ebp + 0x60], 1
test eax, eax
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x6c], ecx
je 0x5091dd
mov ecx, dword [ebp + 0x68]
mov ebp, dword [ebp + 0x60]
mov eax, dword [eax + 0x1c]
push ecx
push ebp
push 0x46f
push eax
call edi
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x48]
mov cl, byte [eax + 4]
test cl, cl
je 0x5091fd
mov cl, byte [eax + 5]
test cl, cl
jne 0x5091fd
mov eax, 1
jmp 0x5091ff
xor eax, eax
test al, al
lea ebp, [esi + 0x1a0]
push esi
sete al
push 0x6c
mov ecx, ebp
mov byte [esi + 0x178], al
call fcn.0057418b
lea ebx, [esi + 0x3a0]
push esi
push 0x6d
mov ecx, ebx
call fcn.0057418b
push ebx
mov ecx, ebp
call fcn.004827f0
test ebp, ebp
jne 0x50923a
xor eax, eax
jmp 0x50923d
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3bc]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call fcn.00571129
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x5c]
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x54]
xor ecx, ecx
mov dword [ebp + 0x60], 1
test eax, eax
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x6c], ecx
je 0x50928b
mov ecx, dword [ebp + 0x68]
mov ebp, dword [ebp + 0x60]
mov eax, dword [eax + 0x1c]
push ecx
push ebp
push 0x46f
push eax
call edi
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x4c]
mov cl, byte [eax + 4]
test cl, cl
je 0x5092ab
mov cl, byte [eax + 5]
test cl, cl
jne 0x5092ab
mov eax, 1
jmp 0x5092ad
xor eax, eax
test al, al
lea ebp, [esi + 0x220]
push esi
sete al
push 0x71
mov ecx, ebp
mov byte [esi + 0x1f8], al
call fcn.0057418b
lea ebx, [esi + 0x3e0]
push esi
push 0x72
mov ecx, ebx
call fcn.0057418b
push ebx
mov ecx, ebp
call fcn.004827f0
xor ebx, ebx
cmp ebp, ebx
jne 0x5092ea
xor eax, eax
jmp 0x5092ed
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x3fc]
push ebx
push eax
push 0x469
push ecx
call edi
push eax
call fcn.00571129
push str._I64d___
lea ecx, [esp + 0x18]
call fcn.00575c43
lea edx, [esp + 0x14]
lea ecx, [esi + 0x26c]
push edx
mov dword [esp + 0xb8], ebx
call fcn.00575d0e
lea ecx, [esp + 0x14]
mov dword [esp + 0xb4], 0xffffffff
call fcn.00575bd5
mov eax, dword [0x5be880]
xor ecx, ecx
mov dword [ebp + 0x68], eax
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x60], ebx
cmp eax, ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x6c], ecx
je 0x509369
mov ecx, dword [ebp + 0x68]
mov ebp, dword [ebp + 0x60]
mov eax, dword [eax + 0x1c]
push ecx
push ebp
push 0x46f
push eax
call edi
push 1
push 0x85
mov ecx, esi
call fcn.00507c40
lea ebp, [esi + 0x460]
push esi
push 0x7a
mov ecx, ebp
call fcn.0057418b
push ebx
mov ecx, ebp
call fcn.0051dae0
lea ebp, [esi + 0x2a0]
push esi
push 0x7d
mov ecx, ebp
call fcn.0057418b
lea ebx, [esi + 0x420]
push esi
push 0x7e
mov ecx, ebx
call fcn.0057418b
push ebx
mov ecx, ebp
call fcn.004827f0
test ebp, ebp
jne 0x5093bf
xor eax, eax
jmp 0x5093c2
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x43c]
push 0
push eax
push 0x469
push ecx
call edi
push eax
call fcn.00571129
push str._0.01f___
lea ecx, [esp + 0x18]
call fcn.00575c43
lea edx, [esp + 0x14]
lea ecx, [esi + 0x2ec]
push edx
mov dword [esp + 0xb8], 1
call fcn.00575d0e
lea ecx, [esp + 0x14]
mov dword [esp + 0xb4], 0xffffffff
call fcn.00575bd5
fld qword [0x5be8a8]
fld qword [0x5be8a0]
fst qword [esp + 0x24]
fstp qword [ebp + 0x60]
fst qword [ebp + 0x68]
mov ebp, dword [ebp + 0x54]
test ebp, ebp
je 0x509450
call fcn.0053e380
fld qword [esp + 0x24]
push eax
call fcn.0053e380
push eax
mov eax, dword [ebp + 0x1c]
push 0x46f
push eax
call edi
jmp 0x509452
fstp st(0)
push 0
push 0x79
mov ecx, esi
call fcn.00507c40
push 0x75
mov ecx, esi
call fcn.005742aa
mov cl, byte [esp + 0x1f]
xor ebp, ebp
mov ebx, eax
mov byte [esp + 0x2c], cl
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov edx, dword [esi + 0x9c]
mov dword [esp + 0xb4], 2
mov eax, dword [edx + 0x14]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00517180
mov ecx, dword [0x6131b0]
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], ecx
test eax, eax
mov byte [esp + 0xb4], 3
jle 0x509530
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x10]
mov eax, dword [edx + ebp*4]
push eax
call fcn.00576ee0
mov ecx, dword [esp + 0x10]
mov edx, dword [ebx + 0x1c]
push ecx
push 0
push 0x143
push edx
call edi
mov ecx, dword [esp + 0x30]
mov edx, dword [ebx + 0x1c]
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + ebp*4]
push ecx
push eax
push 0x151
push edx
call edi
mov eax, dword [esi + 0x9c]
mov cl, byte [eax + 0x3c]
test cl, cl
je 0x509527
mov cl, byte [eax + 0x3d]
test cl, cl
jne 0x509527
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0x38]
cmp dword [ecx + ebp*4], eax
jne 0x509527
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 0x1c]
push 0
push edx
push 0x14e
push eax
call edi
mov eax, dword [esp + 0x18]
inc ebp
cmp ebp, eax
jl 0x5094ba
call fcn.00516ea0
mov dword [esi + 0x4b4], eax
mov eax, dword [eax + 8]
xor ebx, ebx
xor ebp, ebp
mov ecx, dword [eax]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x10]
cmp eax, ebx
mov dword [esp + 0x20], eax
jle 0x5095b0
jmp 0x509559
mov ecx, dword [esp + 0x18]
push ebp
call fcn.005123e0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 4]
lea edx, [esp + 0x24]
push ecx
push edx
lea ecx, [esi + 0x4c0]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
call fcn.0050a6e0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
push ecx
lea ecx, [esp + 0xac]
call fcn.0050ad60
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x14]
inc ebp
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x20]
cmp ebp, eax
jl 0x509555
push 0x76
mov ecx, esi
call fcn.005742aa
mov ebp, eax
push ebx
push ebx
push 0x1037
mov ecx, dword [ebp + 0x1c]
push ecx
call edi
mov edx, dword [ebp + 0x1c]
or al, 0x20
push eax
push ebx
push 0x1036
push edx
call edi
push 0xff
push 1
push 0x10
lea ecx, [esi + 0x4ac]
push 0x65
call fcn.0056e88c
lea eax, [esi + 0x4ac]
cmp eax, ebx
jne 0x5095fb
xor eax, eax
jmp 0x5095fe
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x1c]
push 2
push 0x1003
push eax
call edi
push eax
call fcn.0056e831
push 0x4f56
lea ecx, [esp + 0x14]
call fcn.00576ee0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], 7
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], 0x23
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x10]
push eax
call fcn.00576005
xor edx, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], edx
lea eax, [esp + 0x44]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x60], edx
mov ecx, dword [ebp + 0x1c]
push eax
push ebx
push 0x101b
push ecx
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.00576054
push 0x4f54
lea ecx, [esp + 0x14]
call fcn.00576ee0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x64], 7
mov dword [esp + 0x68], 2
mov dword [esp + 0x6c], 0x32
mov eax, dword [edx - 8]
lea ecx, [esp + 0x10]
push eax
call fcn.00576005
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x7c], eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], eax
mov edx, dword [ebp + 0x1c]
push ecx
push 1
push 0x101b
push edx
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.00576054
push 0x4f55
lea ecx, [esp + 0x14]
call fcn.00576ee0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x84], 7
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], 0x81
mov eax, dword [eax - 8]
lea ecx, [esp + 0x10]
push eax
call fcn.00576005
xor ecx, ecx
lea edx, [esp + 0x84]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], 1
mov dword [esp + 0xa0], ecx
push edx
mov eax, dword [ebp + 0x1c]
push 2
push 0x101b
push eax
call edi
push 0xffffffffffffffff
lea ecx, [esp + 0x14]
call fcn.00576054
mov eax, dword [esi + 0x9c]
mov cl, byte [eax + 0x3c]
test cl, cl
je 0x5097ca
mov cl, byte [eax + 0x3d]
test cl, cl
jne 0x5097ca
cmp dword [eax + 0x38], ebx
je 0x5097ca
push 0x38
call fcn.00570bbc
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov byte [esp + 0xb4], 4
je 0x5097b3
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx + 0x40]
mov ecx, eax
push edx
call fcn.00506d50
jmp 0x5097b5
xor eax, eax
mov ecx, esi
mov byte [esp + 0xb4], 3
mov dword [esi + 0x4b8], eax
call fcn.00507d60
push 1
mov ecx, esi
call fcn.005081e0
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x60]
push eax
lea ecx, [esp + 0x14]
call fcn.00576ee0
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
push 0x68
call fcn.005742aa
mov ecx, eax
call fcn.00574541
mov ecx, dword [esi + 0x9c]
mov edx, dword [ecx]
call dword [edx + 0x64]
push eax
lea ecx, [esp + 0x14]
call fcn.00576ee0
mov eax, dword [esp + 0x10]
mov ecx, esi
push eax
push 0x6b
call fcn.005742aa
mov ecx, eax
call fcn.00574541
push ebx
mov ecx, esi
call fcn.005736cd
push esi
lea ecx, [esi + 0x90]
call fcn.00490040
mov ecx, esi
call fcn.00576b65
lea ecx, [esp + 0x10]
mov byte [esp + 0xb4], 2
call fcn.00575bd5
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00570be5
mov ecx, dword [esp + 0xb0]
add esp, 4
xor eax, eax
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret